【问题标题】:Binding a hyperlink in a Telerik grid to data on the client side将 Telerik 网格中的超链接绑定到客户端的数据
【发布时间】:2013-07-23 12:15:55
【问题描述】:

我有一个包含 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”。但是,脚本在下一行失败,并且永远不会设置链接。

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

【问题讨论】:

    标签: javascript asp.net telerik-grid


    【解决方案1】:

    在这方面从 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-04-20
      • 1970-01-01
      • 2013-03-23
      • 2011-12-09
      • 2011-10-27
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多