我想选择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"];
}
答案 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>