如何在gridview中选择捕获行并将用户名值传递到下一页的文本框?

时间:2014-09-04 08:04:32

标签: c# asp.net 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);
}

我在第二页的代码:

protected void TextBoxUsername_TextChanged(object sender, EventArgs e)
{
    var username = Request.QueryString["USERNAME"];
}

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找GridView的{​​{3}}事件。

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 - 集合,则必须相应地设置DataKeyNames属性。例如:

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