我有一个包含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”。但是,脚本在下一行失败,并且永远不会设置链接。
如何访问该元素以便将超链接绑定到客户端的数据?
答案 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的支持非常好。不要总是第一次做对,但他们会坚持你,有时甚至在你确定问题不是他们的控制之后。