jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在asp.net 2.0里,多了crosspage的功能,也就是说,可以很方便地在第二个页面里接受第一个页面里
的参数值了, 详细参考http://www.cnblogs.com/jackyrong/archive/2005/01/15/92472.html里说的。这里,举个
常见的例子,比如在一个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);
  }
}

posted on 2006-12-15 10:31  jackyrong的世界  阅读(658)  评论(1编辑  收藏  举报