设置动态asp:HyperLinkField

时间:2019-02-21 09:55:49

标签: c# asp.net webforms

我有一个gridview,在该页面上加载了dataReader时会被填充。

我可以添加带有超链接的列,但是我需要URL包含GenCod,该GenCod是逐行动态添加到gridView的,因此每个链接都发送到其详细信息页面。

URL示例:http://localhost:50228/misesenventedetail.aspx?GenCod=9788416657544

我如何使用列的索引或名称来获取GenCod?

<asp:GridView ID="aParaitre_GridView" runat="server" OnRowCommand="RowCommand" >
   <Columns>
     <asp:ButtonField buttontype="Image" CommandName="AjouterAuPanier" ImageUrl="~/Images/buy_this_logo.png" />
     <asp:HyperLinkField NavigateUrl="url+Parameter+GENCOD" Text="VoirDetail" />
   </Columns>
</asp:GridView>

此GridView包含更多列。

获取错误:System.Web.UI.WebControls.HyperLinkField没有数据绑定。

使用以下代码:

<asp:HyperLinkField               
     NavigateUrl='<%# String.Format("~/misesenventedetail.aspx?GenCod={0}", Eval("GenCod"))%>'
     Text="Detail" 
     runat="server"
     />

我希望这样的事情能奏效

 <asp:HyperLinkField
     id="MyLink"
     NavigateUrl="~/misesenventedetail.aspx?GenCod<%= gencod %>"
     runat="server" />


  protected void RowCommand(object sender, GridViewCommandEventArgs e)
  {
     // Gets the index of the line (row) where we click
     int index = Convert.ToInt32(e.CommandArgument);

     GridViewRow ligneClick = aParaitre_GridView.Rows[index];

     // Gets GenCod from column 1
     var GenCod = ligneClick.Cells[1].Text;

     MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", GenCod );

  }

1 个答案:

答案 0 :(得分:0)

已解决

我能够解决此问题:

<asp:HyperLinkField
DataNavigateUrlFields="GenCod" DataNavigateUrlFormatString="~/misesenventedetail.aspx?GenCod={0}" Text="Voir Details"        
runat="server" />

StackOverflow很棒。