设置动态asp:HyperLinkField

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (160)

我有一个gridview,当页面加载dataReader时填充。

我可以添加一个包含超链接的列,但是我需要url来包含逐行动态添加到gridView的GenCod,以便每个链接发送到其详细信息页面。

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没有DataBinding。

使用以下代码:

<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 );

  }
提问于
用户回答回答于

解决了

我能用这个来解决我的问题:

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

StackOverflow太棒了。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励