gpt4 book ai didi

javascript - 从客户端获取 Telerik 网格中所选行的值

转载 作者:行者123 更新时间:2023-12-03 04:50:46 25 4
gpt4 key购买 nike

我正在尝试在客户端使用 javascript 获取 DataField="id"的 GridBoundColumn 的值。每当用户单击该行的图像按钮时,我应该检索该行的 id 并调用传递该 id 的 Web 方法...我已在同一 aspx 页面中尝试过此脚本 block :

<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>

但是抛出错误:无法读取未定义的属性 getDataKeyValue...我发现所选项目的长度为0:

var selectedItems= master.get_selectedItems().length;  // selectedItems = 0

这里遗漏了什么?我怎样才能得到id值?下面是我的 Telerik 网格代码:

    <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>

编辑:

我也尝试过这个解决方案:

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);

关于 Clicked_rowIndex:每次点击都会返回正确的行索引 (1,2,3 ....)但对于所有行,它显示相同的 id(第一行的 id);如何组合 Clicked_rowIndex 和 imgUpload_ID 来获取所选 row_index 的 id?

最佳答案

好吧,我终于找到了:

 var Rows = $find('<%= RadGrid1.ClientID %>').get_masterTableView().get_dataItems();
var Clicked_rowIndex = object.parentNode.parentNode.rowIndex;
var row = Rows[Clicked_rowIndex-1];
id = row.getDataKeyValue("id");
alert(id);

关于javascript - 从客户端获取 Telerik 网格中所选行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42664888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com