0

RadGrid を含むページがあります。次のように、列の 1 つに編集テンプレートのハイパーリンクが含まれています。

<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 から優れたサポートを得ました。彼らには 2 つの代替ソリューションがありました。

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 を使用します。

私は 2 番目の方法を選択し、最初の試行で機能しました。私は最初の方法を試したことはありません。

全体として、Telerik のサポートは優れていると言わざるを得ません。最初はいつもうまくいくとは限りませんが、問題が彼らのコントロールではないとあなたが判断した後でも、彼らはあなたに固執します.

于 2013-07-24T12:37:02.727 に答える