我有一个显示一些数据的GridView:
Entity_ID(PK)
名称
描述
现在我在GridView中启用Select。我需要将Entity_ID传递给另一个页面,在此页面中,我将显示此Entity_ID的更多内容。
我应该如何选择Entity_ID值并将其作为查询字符串传递?我有这段代码:
ProductsDataGridView.SelectedRows(0).Cells(1).Value.ToString()
任何回复都将不胜感激!谢谢。
答案 0 :(得分:6)
在网格中添加新项目模板列,然后添加选择链接,如下所示。
<asp:TemplateField HeaderText="View Details">
<ItemTemplate>
<asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink>
</ItemTemplate>
答案 1 :(得分:2)
这就是我所做的:
protected void gvAgentList_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = gvAgentList.SelectedRow;
Response.Redirect("~/FrontEnd/Registration.aspx? EntityID=" + row.Cells[0].Text);
}
答案 2 :(得分:1)
使用OnRowSelected事件。一旦调用,您就可以获得所选行,然后获取实体ID。接下来,您可以在查询字符串中构建一个包含实体ID的字符串,并在该页面中使用response.redirect。
答案 3 :(得分:0)
如何在页面之间传递数据有几种方法:
http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx
如果你不介意网址将包含ID
,那么查询字符串就可以了你也可以从上面的选项中考虑Page.PreviousPage,这在你的情况下似乎是合理的
答案 4 :(得分:0)
您也可以使用DataKeys
设置DataKeys='Entity_ID'
在后面的代码中,您可以访问与selectedrow.DataKeys[rowindex]["Entity_ID"]
此处选中的行是您选择的行,rowindex索引并获得相应的Entity_ID
答案 5 :(得分:0)
@GSGuy:
<asp:GridView runat ="server" ID = "gvAgentList"
AllowPaging = "True"
AutoGenerateSelectButton="True" AllowSorting="True" BackColor="#E8E8E8"
BorderColor="#003399" BorderStyle="Solid" BorderWidth="1px" Height="375px"
Width="823px" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1" onselectedindexchanged="gvAgentList_SelectedIndexChanged">
<AlternatingRowStyle ForeColor="#0066CC" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" />
<asp:TemplateField HeaderText="View Details">
<ItemTemplate>
<asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink>
</ItemTemplate>
</Columns>
<HeaderStyle ForeColor="#3366FF" />
</asp:GridView>
答案 6 :(得分:0)
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
string fname, lname;
fname = GridView1.Rows[e.NewEditIndex].Cells[0].Text;
Session["fname"] = fname;
lname = GridView1.Rows[e.NewEditIndex].Cells[1].Text;
Session["lname"] = lname;
Response.Redirect("gridpass.aspx");
}
在gridpass.aspx.cs上
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = Session["fname"].ToString();
TextBox2.Text = Session["lname"].ToString();
}