クライアント側でjavascriptを使用してDataField = "id"であるGridBoundColumnの値を取得しようとしています。ユーザーが行の画像ボタンをクリックするたびに、私はこの行のIDを取得し、このIDを渡すWebメソッドを呼び出す必要があります...私は同じaspxページにこのスクリプトブロックを試してみました:クライアント側からtelerikグリッド内の選択行の値を取得
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function test(object) {
try {
var master = $find('<%= RadGrid1.ClientID %>').get_masterTableView();
var selectedItems= master.get_selectedItems()[0].getDataKeyValue("id");
alert(selectedItems);
} catch (err) {alert(err);}
}
</script>
</telerik:RadCodeBlock>
しかし、エラーがスローされます。ここで何を
var selectedItems= master.get_selectedItems().length; // selectedItems = 0
を逃している:未定義のプロパティgetDataKeyValue ... を読み取ることができない私は、選択した項目の長さが0であるましたか?どのようにid値を取得できますか?以下の私telerikグリッドコードです:Clicked_rowIndexに関する
var imgUpload = document.getElementById("imgUpload");
var imgUpload_ID = imgUpload.getAttribute('data-id');
alert(imgUpload_ID);
var Clicked_rowIndex = object.parentNode.parentNode.rowIndex;
alert(Clicked_rowIndex);
::私はまた、このソリューションを試してみました
:
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" Width="100%" ShowFooter="true" ItemStyle-Wrap="false" FooterStyle-Wrap="false" FooterStyle-Width="100px" PagerStyle-Wrap="false" EnableEmbeddedSkins="false" GridLines="None" EnableViewState="false">
<HeaderContextMenu EnableEmbeddedSkins="False"></HeaderContextMenu>
<FooterStyle Wrap="False"></FooterStyle>
<ItemStyle Wrap="False"></ItemStyle>
<PagerStyle Visible="true" PagerTextFormat="Change page: {4} <b>{5}</b> items in <b>{1}</b> pages" />
<MasterTableView DataKeyNames="id" ClientDataKeyNames="id" PageSize="15" TableLayout="Fixed">
<NoRecordsTemplate>
<div> No records to display.</div>
</NoRecordsTemplate>
<Columns>
<telerik:GridBoundColumn DataField="id" ReadOnly="True" UniqueName="id"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="TemplateColumn" ItemStyle-Width="35px" HeaderStyle-Width="35px">
<ItemTemplate>
<asp:ImageButton ID="imgUpload" runat="server" CausesValidation="False" ClientIDMode="Static" data-id='<%# Eval("id") %>' ImageUrl="~/Images/Misc/File-Upload-icon.png" OnClientClick="test(this);" TabIndex="-1" ToolTip="Upload" />
</ItemTemplate>
<HeaderStyle Width="35px"></HeaderStyle>
<ItemStyle Width="35px"></ItemStyle>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<ClientSettings>
</ClientSettings>
<FilterMenu EnableEmbeddedSkins="False" EnableEmbeddedBaseStylesheet="False">
</FilterMenu>
<SortingSettings EnableSkinSortStyles="False" />
</telerik:RadGrid>
編集各クリックは正しいrowIndexに(1を、返却されます2,3 ...) しかし、すべての行で同じID(最初の行のID)を表示しています。 Clicked_rowIndexとimgUpload_IDを組み合わせて、選択したrow_indexのIDを取得するにはどうすればよいですか?
はおそらく、あなたは、パラメータ「オブジェクト」ではなくget_selectedItems()[インデックス]で作業する必要があります。 –