【问题标题】:Bind Links To GridView将链接绑定到 GridView
【发布时间】:2014-06-18 17:45:23
【问题描述】:

如何在 WebForms GridView 的列中呈现链接?

我有以下代码

SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.UsersContacts WHERE UserId='vika'", con);

con.Open();

var list1 = new List<string>();
using (SqlDataReader reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        var node = reader[1];
        list1.Add(node.ToString());
    }
}
con.Close();

GridView1.DataSource = list1;
GridView1.DataBind();

我想做一些诸如list1.Add("&lt;a href='#'&gt;"+node.ToString()+"&lt;a&gt;"); 之类的事情并将其作为我的 GridView 中的链接。

【问题讨论】:

  • 为什么要在后面的代码中这样做,而不是直接在gridview模板定义中添加'HyperLinkField'或'HyperLink'并绑定'node'值?
  • 另外,仅供参考,您也应该在 using 块中包含您的 SqlCommand

标签: c# asp.net gridview


【解决方案1】:

我宁愿在 gridview 模板定义中执行此操作,而不是从数据源传递链接。您的 gridview 定义可以包含 asp:HyperLinkFieldasp:HyperLink 字段并根据需要绑定数据。

<asp:GridView ID="GridView1" runat="server">  
     <Columns>  
            <asp:HyperLinkField   
                HeaderText="View Details"  
                DataNavigateUrlFields="node"  
                DataNavigateUrlFormatString="~/TargetPage.aspx?Id={0}"  
                DataTextField="node"  
                />  
     </Columns>  
</asp:GridView> 

或者

<asp:HyperLink runat="server" NavigateUrl='<%# Eval("node", "~/TargetPage.aspx?Id={0}") %>' Text="View Details" />

【讨论】:

    猜你喜欢
    • 2011-06-10
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多