将Telerik网格中的超链接绑定到客户端上的数据

时间:2013-07-23 12:15:56

标签: javascript asp.net telerik-grid

我有一个包含RadGrid的页面。其中一列包含编辑模板中的超链接,如下所示:

<telerik:GridTemplateColumn HeaderText="Asset Name" FilterControlAltText="FilterAssetName">
    <ItemTemplate>
        <asp:HyperLink ID="hplEditAsset" runat="server" ForeColor="Blue" AutoPostBackOnFilter="true"></asp:HyperLink>
    </ItemTemplate>
</telerik:GridTemplateColumn>

我正在通过webservice加载数据,所以我想将数据绑定到客户端的网格。我正在尝试访问javascript函数中的超链接,如下所示:

function gridRowBound(sender, args) {
   var row = args.get_item()
   var link = $telerik.findElement(row , 'hplEditAsset');
   var d = args.get_dataItem();

   link.innerHtml = d.Url;
   link.outerHtml = d.UrlDescription; 
} 

绑定到网格的数据采用List的形式,MyDataRow具有名为Url和UrlDescription的属性。

根据Firebug,当我运行代码时,行被设置为“tr#ctl00_MainContent_QuickScanGrid_ctl00__0.rgRow”。但是,脚本在下一行失败,并且永远不会设置链接。

如何访问该元素以便将超链接绑定到客户端的数据?

1 个答案:

答案 0 :(得分:0)

Telerik对此提供了极好的支持帮助。他们有两种替代解决方案:

1)对findElement的不同类型的调用

function rowDataBound(sender, args) {
   var row = args.get_item();
   var d = args.get_dataItem();
   var link = $telerik.findElement(row.get_element(), 'hplEditAsset');

   $(link).text(d.ProductName);
}

OR

2)使用GridHyperLinkColumn代替GridItemTemplate,它设计用于自动绑定我想要的方式。

我选择了第二种方式,它在第一次尝试时起作用。我从未尝试过第一种方法。

总的来说,我不得不说Telerik的支持非常好。不要总是第一次做对,但他们会坚持你,有时甚至在你确定问题不是他们的控制之后。