我在另一个例子中通过一些解决方法解决了这个问题,但是这次我想明白这一点,因为我更好地理解了我的问题。
我的asp.net网页具有搜索功能,可根据5个字段搜索数据库。结果显示在gridview中。 gridview是可编辑的,我可以更新值。问题是如果我想更新多个值,gridview将不允许它。所以我为复选框添加了一个额外的列。我添加了一个页脚,其中包含更新所有已检查记录的链接。
好的,这就是问题所在?如何将整个gridview发送到另一个可以捕获gridview值的页面?
默认情况下,页面会自行提交。如果我更改默认操作页面,整个gridview和搜索,则无效。
那么如何将整个页面(或部分页面)提交到默认操作脚本以外的其他页面?
答案 0 :(得分:1)
您是否尝试过使用Session
?只需将DataSource
或Gridview
本身添加到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>
希望得到这个帮助。