将表单提交到非默认页面

时间:2012-02-07 16:47:14

标签: asp.net visual-studio-2008 webforms action

我在另一个例子中通过一些解决方法解决了这个问题,但是这次我想明白这一点,因为我更好地理解了我的问题。

我的asp.net网页具有搜索功能,可根据5个字段搜索数据库。结果显示在gridview中。 gridview是可编辑的,我可以更新值。问题是如果我想更新多个值,gridview将不允许它。所以我为复选框添加了一个额外的列。我添加了一个页脚,其中包含更新所有已检查记录的链接。

好的,这就是问题所在?如何将整个gridview发送到另一个可以捕获gridview值的页面?

默认情况下,页面会自行提交。如果我更改默认操作页面,整个gridview和搜索,则无效。

那么如何将整个页面(或部分页面)提交到默认操作脚本以外的其他页面?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用Session?只需将DataSourceGridview本身添加到Session,然后将其加载到另一个页面,然后Dispose()

祝你好运!

<强>更新

我过去通过Cross-Page Posting完成了这项工作。这就是我现在为测试目的而做的事情:

Default.aspx的:

<asp:Button  ID="Button1" runat="server" Text="Button" onclick="Button1_Click" PostBackUrl="SearchResult.aspx" />

SearchResult.aspx.cs:

 protected void Page_Init(object sender, EventArgs e)
    {
        if (PreviousPage != null)
        {
            if (Page.PreviousPage.FindControl("GridView1") != null)
            {
                GridView grid = (GridView)Page.PreviousPage.FindControl("GridView1");
                grid.ID = "myGrid";
                this.form1.Controls.Add(grid);
            }
        }
    }

希望这有帮助。

答案 1 :(得分:1)

我没有特别使用gridview,但我认为Cross Page PostBack应该可行。我的网站上也有搜索功能,这就是我使用的功能。

设置导致PostBack到目标页面的Button的PostBackUrl。 我们假设您的源页面是search.aspx,您的目标页面是SearchResult.aspx

在search.aspx里面:

<asp:Button ID="btnSearch" runat="server" Text="Search"  CssClass="right" 
    ValidationGroup = "Search"
    PostBackUrl="~/SearchResult.aspx"
    onclick="btnSearch_Click"/>

表单将发布到SearchResult.aspx。在SearchResult.aspx中,添加此指令:

<%@ PreviousPageType VirtualPath="~/Search.aspx"  %>

在后面的代码中,你可以接受任何这样的控制:

PreviousPage.<mycontrol>

希望得到这个帮助。