gpt4 book ai didi

c# - 单击 jqGrid 中的一行获取列的值

转载 作者:行者123 更新时间:2023-11-30 20:05:57 26 4
gpt4 key购买 nike

我正在使用 Asp.Net/C# ,在我的一个页面中,我正在使用 jqGridAdmin 显示用户列表, jqGrid 包含以下列

  1. 用户代码
  2. 名字
  3. 中间名
  4. 姓氏
  5. 电子邮件

这是我的标记

<cc1:JQGrid ID="ModifyAccountUserDetailsjqGrid"    AppearanceSettings-Caption="User Details"         runat="server" Width=800   DataSourceID=ModifyAccountDataSource>
<Columns>
<cc1:JQGridColumn HeaderText="User Code" ShowToolTip=false PrimaryKey=true DataField="UserCode"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="First Name" ShowToolTip=false DataField="FirstName"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Middle Name" ShowToolTip=false DataField="MiddleName"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Last Name" ShowToolTip=false DataField="LastName"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Email" ShowToolTip=false DataField="Email"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Contact No" ShowToolTip=false DataField="ContactNo"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Division Name" ShowToolTip=false DataField="DivisionName"></cc1:JQGridColumn>
<cc1:JQGridColumn HeaderText="Last Name" ShowToolTip=false DataField="BranchName"></cc1:JQGridColumn>
</Columns>
</cc1:JQGrid>

我需要的是,当管理员单击一行时,我想获取单击行的用户代码的值。我是 jqGrid 的新手,所以我不清楚我该怎么做。谁能指出我正确的方向。欢迎提出任何建议。

谢谢

最佳答案

首先,您应该选择符合您要求的最佳回调。通常为 onSelectRow ,但在其他一些情况下,另一个回调如 onCellSelect , beforeSelectRowondblClickRow更好。

在回调中你得到 rowid (id<tr> 行)作为第一个参数。您可以使用 getCell , getRowDatagetLocalRow获取一些单元格的包含。例如

onSelectRow: function (id) {
// get data from the column 'userCode'
var userCode = $(this).jqGrid('getCell', 'userCode');
alert(userCode);
}

onSelectRow: function (id) {
var localRowData = $(this).jqGrid('getLocalRow');
alert(localRowData.userCode);
}

如果 jqGrid 具有本地数据(您使用 datatype: 'local' 或远程数据类型,如 datatype: 'json'loadonce: true 结合使用),最后一种方法是最好的。

已更新:在评论中的一些帖子和问题文本的更新之后,我看到您使用了 jqSuite for ASP.NET WebForms或其他一些基于 jqGrid 而不是免费、开源 JavaScript 库的商业产品 jqGrid .我不使用 jqSuite,也不知道应该如何在 jqSuite 中实现 JavaScript 回调。

我可以建议您使用新的 jqGrid 4.3.2 功能:jQuery like events .你可以做的是这样的代码

var $grid = jQuery("#<%= ModifyAccountUserDetailsjqGrid.ClientID %>");
$grid.bind("jqGridSelectRow", function (id) {
var userCode = $(this).jqGrid('getCell', 'userCode');
alert(userCode);
});

var $grid = jQuery("#<%= ModifyAccountUserDetailsjqGrid.ClientID %>");
$grid.bind("jqGridSelectRow", function (id) {
var localRowData = $(this).jqGrid('getLocalRow');
alert(localRowData.userCode);
});

像“jqGridSelectRow”这样的事件的事件处理程序可以在创建网格之前或之后定义(但在创建<table> 等于id<%= ModifyAccountUserDetailsjqGrid.ClientID %> 元素之后)。此外,如果需要,您可以将多个定义为一个事件处理程序。如果您想在项目中实现所有网格的一些通用操作,这非常实用。

关于c# - 单击 jqGrid 中的一行获取列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361083/

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