[英]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.