2014-09-04 50 views
1

我想选择gridview并重定向到下一个页面,其中gridview中的用户名在单击该行时传递给下一页中的文本框。我怎么做?如何在gridview中选择捕获行并将用户名值传递给下一页中的文本框?

我后面的代码(第一页):

protected void GridView1_OnRowSelected(object sender, GridViewSelectEventArgs e) 
{ 
    var username = Convert.ToString(GridView1.DataKeys[e.NewSelectedIndex].Value); 
    Response.Redirect("ViewUploads.aspx?USERNAME=" +username); 
} 

我的第二页上的代码:

​​
+0

那么它是否按预期工作?如果没有,什么不起作用? – 2014-09-04 08:07:57

+0

没有它不起作用,当我点击网格视图中的行时,它将文本框中没有任何用户名的情况下重定向到下一页。它应该从gridview传递用户名。 – 2014-09-04 08:09:31

+0

我在下面编辑了我的答案。 – 2014-09-04 08:18:28

回答

1

我假设你正在寻找的SelectedIndexChanged事件GridView的。

protected void GridView_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e) 
{ 
    var username = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); 
    Response.Redirect("ViewUploads.aspx?USERNAME=" +username); 
} 

在接下来的页面(ViewUploads.aspx),你需要将其分配到TextBox” Text

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack && Request.QueryString["USERNAME"] != null) 
     this.txtUserName.Text = Request.QueryString["USERNAME"]; 
} 

我不知道,如果你已经做了,如果你想使用DataKeys -collection在第一页,你必须相应地设置DataKeyNames属性。例如:

<asp:gridview id="GridView1" 
    datakeynames="UserName" 
    onselectedindexchanged="GridView_SelectedIndexChanging" 
    runat="server"> 
    ... 
</asp:gridview> 
+0

它的工作....非常感谢你!!!!!! – 2014-09-04 08:18:25

相关问题