0

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

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

我正在通过 web 服务加载数据,所以我想将数据绑定到客户端的网格。我正在尝试访问 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”。但是,脚本在下一行失败,并且永远不会设置链接。

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

4

1 回答 1

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);
}

或者

2) 使用 GridHyperLinkColumn 而不是 GridItemTemplate,它旨在按照我想要的方式自动绑定。

我选择了第二种方式,第一次尝试就成功了。我从未尝试过第一种方法。

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

于 2013-07-24T12:37:02.727 回答