JavaScriptを使用してクライアント側からRadGridコントロールのClientIDを取得しようとしています。クライアント側からデータをバインドできるようになります。RadLightBoxのRadLightBoxItemタグ内のRadGridのクライアントIDを見つける
RadGridはRadLightBox内に存在し、ボタンのクリックイベントに取り込まれる必要があります。 LightBoxのマークアップは次のようになります。
<telerik:RadLightBox ID="RadLightBox1" runat="server">
<Items>
<telerik:RadLightBoxItem runat="server">
<ItemTemplate>
<telerik:RadGrid runat="server" ID="lightbox_radgrid" AutoGenerateColumns="false">
<MasterTableView>
<Columns>
<%-- Columns not shown here --%>
</Columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnCommand="window_radgrid_OnCommand" />
</ClientSettings>
<GroupingSettings CaseSensitive="false" ShowUnGroupButton="true" />
</telerik:RadGrid>
</ItemTemplate>
</telerik:RadLightBoxItem>
</Items>
</telerik:RadLightBox>
これは、私が書いた部分的なJavaScriptコードです。私はRadLIghtBoxItem要素を見つけることができましたが、RadGridを取得することができず、クライアントIDを取得できませんでした。このメソッドは、データを返すWebサービスへの呼び出しが成功したときに実行されます。
function onSucessCallThis(result, userContext, methodName) {
var radWindow = $find('<%= lightbox.ClientID %>');
var LightBoxItems = radWindow.get_items();
console.log(LightBoxItems);
console.log(LightBoxItems.get_count());
var item = LightBoxItems.getItem(0);
console.log(item); //Able to fetch LightBoxItem
var radGrid = item.FindControl("lightbox_radgrid"); //Doesn't work
}
これがRadLightBox内にradGridを持つ正しい方法であるかどうかはわかりません。このオンラインの例はあまりありません。