asp.net - 动态向 'GridView' 添加超链接列(服务器端)

标签 asp.net gridview dynamic hyperlink server-side

我有一个 ASP.NET 应用程序,它读取 XML 源并在 GridView 中创建列。 。这个相同的 XML 源用于在 DataTable 中创建列。 。应用程序填充 DataTable,然后使用服务器端代码将 DataTable 绑定(bind)到 GridView

现在我想在 GridView 中显示超链接,但不知道该怎么做。 (请注意,该应用程序未使用 RowDataBound 事件。)

这是我迄今为止所拥有的:

foreach (XmlNode columnNode in columnNodes)
{    
    dc = new DataColumn(columnNode.Attributes["ColumnName"].Value,
        Type.GetType("System.String"));
    dt.Columns.Add(dc);

    boundField = new BoundField();
    boundField.HeaderText = columnNode.Attributes["ColumnDisplayName"].Value;
    boundField.DataField = columnNode.Attributes["ColumnName"].Value;
    boundField.SortExpression = columnNode.Attributes["ColumnName"].Value; 
    grdView.Columns.Add(boundField);    
} 

其中dt是一个DataTablegrdView是一个GridView

最佳答案

您应该使用 HyperLinkField实现这一目标;它是一种专门用于显示和格式化超链接的绑定(bind)字段。您只需要稍微更新您的代码:

linkField = new HyperLinkField();
linkField.HeaderText = columnNode.Attributes["ColumnDisplayName"].Value;
// The field you want to use as the displayed text of the hyperlink
linkField.DataTextField = columnNode.Attributes["ColumnName"].Value;
// The field(s) you want to use in the URL behind the hyperlink
linkField.DataNavigateUrlFields = new string[] { columnNode.Attributes["ColumnName"].Value };
// The formatting string for your hyperlink.  Use this to build the links the way you want them.
linkField.DataNavigateUrlFormatString = "http://yourSiteName/links/{0}";
linkField.SortExpression = columnNode.Attributes["ColumnName"].Value; 
grdView.Columns.Add(linkField);

您在问题中遗漏的部分是您希望这些超链接 URL 的外观。 DataNavigateUrlFormatString非常灵活(它的工作方式类似于 String.Format,因此您可以从静态文本构造 URL 并从数据字段嵌入文本)。

关于asp.net - 动态向 'GridView' 添加超链接列(服务器端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15743790/

相关文章:

如果授权失败,Asp.net mvc [Authorize] 属性将返回 http 302 而不是 http 401

asp.net - CSS 中的内联样式与样式

c# - 如何使用 OnChange 事件制作 HtmlSelect 控件以触发 C# 代码隐藏功能

c# - 我应该使用 ListView、DetailsView 还是 GridView?

Jquery验证: Adding/Removing Rules Dynamically based on dropdown selection

javascript - 使用 ja 将对象添加到 HTML Canvas 中

c# - 如何为 Linq-To-Entities 应用动态过滤器并在服务器端执行它们

c# - 如何向 GridView 添加新行

asp.net - 使用 jQuery 设置 gridview 行

c# - 使用标记的 GridView 行号(仅限)