簡體   English   中英

將Telerik網格中的超鏈接綁定到客戶端上的數據

[英]Binding a hyperlink in a Telerik grid to data on the client side

我有一個包含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”。 但是,腳本在下一行失敗,並且永遠不會設置鏈接。

如何訪問該元素,以便可以將超鏈接綁定到客戶端上的數據?

在此方面,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)代替GridItemTemplate,使用GridHyperLinkColumn,它被設計為完全自動綁定我想要的樣式。

我選擇了第二種方法,並且在第一次嘗試中成功了。 我從未嘗試過第一種方法。

總的來說,我不得不說Telerik對它的支持非常好。 並非總是一開始就正確,但有時即使您確定問題不是他們的控制,他們也會堅持住。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM