asp.net 2.0中的gridview里用crosspage的功能
原创
©著作权归作者所有:来自51CTO博客作者mb5c80f4c73b73a的原创作品,请联系作者获取转载授权,否则将追究法律责任
在asp.net 2.0里,多了crosspage的功能,也就是说,可以很方便地在第二个页面里接受第一个页面里的参数值了, 详细参考里说的。这里,举个
常见的例子,比如在一个gridview里,当点选第一列某个人的姓名后,接着并跳转到第二页,在这页里显示关于这个人的具体信息,这可以很方便地用cross page的功能实现。
A页面有个gridview:
<asp:GridView ID="g" runat="server"
AllowSorting="True" AutoGenerateColumns="False" AllowPaging="True"
PageSize="50" OnRowCommand="g_OnRowCommand">
<Columns>
<asp:ButtonField HeaderText="Username"
CommandName="Select" DataTextField="Username"
ButtonType="Link" </asp>
.....................
然后在g_onrowcommand事件中写入如下代码
protected void g_OnRowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = (GridViewRow)g.Rows[index]; LinkButton clickedLinkedButton =
((LinkButton)selectedRow.Cells[0].Controls[0]); SelectedUserName = clickedLinkedButton.Text;
Server.Transfer("../../pages/search/usersummary.aspx", true);
}
}
在这里,首先得到用户选的是哪一行的记录(得出index),然后在得到gridview里第一列的连接的内容,最后用 SelectedUserName 存放用户点选的是哪一条记录中的username.,
其中,SelectedUserName是属性来的,定义如下
private String _selectedUserName;
public String SelectedUserName
{
get
{
return _selectedUserName;
}
set
{
_seletedUserName=value;
}
}
然后在第二个接收页面b.aspx里,这样设计
<%@ PreviousPageType
VirtualPath="~/a..aspx"%>
protected void Page_Load(object sender, EventArgs e)
{
if (this.PreviousPage != null)
{
Response.write( this.PreviousPage.SelectedUserName);
}
}