如何将值绑定到 C# 代码隐藏中的 GridView 中的超链接
本文关键字:隐藏 GridView 超链接 代码 绑定 | 更新日期: 2023-09-27 17:57:01
我有一个自定义网格,我在 c# 代码隐藏中绑定了数据。我已经为我的一个专栏提供了一个超链接字段。如果我单击超链接值,它应该导航到该超链接值的详细信息页面。代码如下:
protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink myLink = new HyperLink();
myLink.Text = e.Row.Cells[2].Text;
e.Row.Cells[2].Controls.Add(myLink);
myLink.NavigateUrl = "Estimation.aspx?EstimateID=" + EstimateID + "&VersionNo=" + VersionNo;
}
}
如果我单击该链接,该页面将被导航,但我没有得到该页面中已经预加载的详细信息。请给我关于如何合并的建议。谢谢
您可以使用
它来重定向,请阅读此内容
<asp:HyperLink ID="HyperLink1"
runat="server"
NavigateUrl="Default2.aspx">
HyperLink
</asp:HyperLink>
要使用链接添加属性,只需添加
HyperLink1.Attributes.Add ("");
您需要
在 RowDataBound 事件中进行一个小的更改
myLink.Attributes.Add("href", your url");
您需要
从网格行数据中获取EstimateID
和VersionNo
的值。查看 GridViewRowEventArgs 的文档,您将看到有一个 .行属性。
所以你的代码需要像这样:
myLink.NavigateUrl = "Estimation.aspx?EstimateID=" + e.Row.Cells[4].Text + "&VersionNo=" + e.Row.Cells[5].Text;
或者,也许您需要获取与网格行关联的数据项,在这种情况下,请查看 e.Row.DataItem,即 GridViewRow.DataItem 属性。此 DataItem 需要强制转换为已绑定到网格的数据类型,以便从中获取数据,这可能如下所示:
((MyCustomDataRow)e.Row.DataItem).EstimateID
尝试以下解决方案:
第 1 页是您的列表页:ASPX 代码 :
<asp:GridView ID="GridView1" runat="server"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
List<Data> lstData = new List<Data>();
for (int index = 0; index < 10; index++)
{
Data objData = new Data();
objData.EstimateID = index;
objData.VersionNo = "VersionNo" + index;
lstData.Add(objData);
}
GridView1.DataSource = lstData;
GridView1.DataBind();
}
public class Data
{
public int EstimateID { get; set; }
public string VersionNo { get; set; }
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink HyperLink1 = e.Row.FindControl("HyperLink1") as HyperLink;
HyperLink1.NavigateUrl = "Details.aspx?EstimateID=" + e.Row.Cells[1].Text + "&VersionNo=" + e.Row.Cells[2].Text;
}
}
第 2 页是您的详细信息页面:代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.QueryString["EstimateID"].ToString());
Response.Write(Request.QueryString["VersionNo"].ToString());
}