我有一个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属性,但我找不到以编程方式更改这些字段的方法。
答案 0 :(得分:1)
你可以尝试一个模板列,只需放置一个html标签,然后使用Eval函数以你想要的方式绑定东西。
查看此演示 - http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/columntypes/defaultcs.aspx
答案 1 :(得分: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")