1

我有一个 Telerik RadGrid,当网格加载时,它会填充来自 SQL 数据库的数据。第一列列出了一个名称,该名称必须是指向网站另一部分的超链接。我尝试了几种不同的选择,但都没有得到我需要的结果。

我尝试的第一种方法是使用 GridHyperLinkColumn。但是,当网格填充数据时,这不允许我以编程方式更改超链接的显示文本。

<telerik:GridHyperLinkColumn DataNavigateUrlFields="joblink" DataNavigateUrlFormatString="/Job.aspx?id={0}" Text="JobName">

taskDR.Item("joblink") = dataReader("publicID")
taskDR.Item("joblink").Text = dataReader("name")  'This is what I would like to do

另一种选择是使用 GridBoundColumn 并将超链接绑定到它。

<telerik:GridBoundColumn DataField="joblink" UniqueName="joblink">

Dim jobhyperlink As New HyperLink()
jobhyperlink.Text = dataReader("name")
jobhyperlink.NavigateUrl = "/Job.aspx?id=" & dataReader("publicID").ToString()
taskDR.Item("joblink") = jobhyperlink

但是,不是在 joblink 列中显示超链接,而是显示“System.Web.UI.WebControls.HyperLink”

我查看了 GridHyperLinkColumn 的 DataTextField 和 DataTextFormatString 属性,但我找不到以编程方式更改这些字段的方法。

4

2 回答 2

1

您可以尝试一个模板列,只需放置一个 html 标记并使用 Eval 函数以您想要的方式绑定内容。

看看这个演示 - http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/columntypes/defaultcs.aspx

于 2013-06-16T18:41:40.963 回答
0

我终于弄明白了。

<telerik:GridHyperLinkColumn UniqueName="joblink" Text="jobname" DataNavigateUrlFields="joblink" DataNavigateUrlFormatString="/Employer/Job.aspx?action=edit&id={0}" DataTextField="jobname" DataTextFormatString="{0}">

Dim taskDT As New DataTable
taskDT.Columns.Add("jID")
taskDT.Columns.Add("jobname") 'You need one column for the DataTextField
taskDT.Columns.Add("joblink") 'and another for the DataNavigateUrlField

While dataReader.Read()
Dim taskDR = taskDT.NewRow()
taskDR.Item("jobname") = dataReader("name")
taskDR.Item("joblink") = dataReader("publicID")
于 2013-06-16T19:00:58.807 回答