我使用Asp.Net/C#
,在我的页面之一我使用jqGrid
显示用户列表的Admin
,在jqGrid
包含以下几列
- 用户代码
- 名字
- 中间名字
- 姓
- 电子邮件
这里是我的标记
<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>
我需要的是,当管理员点击一排我想获取单击row.I的用户代码的价值是新来的jqGrid
,所以我没有一个明确的想法,我怎么能去这个问题。 任何人都可以点我在正确的direction.Any建议是值得欢迎的。
谢谢
首先,你应该选择对应您的要求的最佳回调。 通常,这将是onSelectRow
,但在一些其他情况下,像另一个回调onCellSelect
, beforeSelectRow
或ondblClickRow
更好。
在回调你rowid
(该id
或<tr>
作为第一个参数行)。 您可以使用getCell
, getRowData
或getLocalRow
,以获得含有一些细胞。 例如
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为ASP.NET WebForms的基础上,而不是jqGrid的免费,开源的JavaScript库或者是一些其他的商业产品 的jqGrid 。 我不使用jqSuite,不知道如何jqSuite应执行JavaScript的回调。
我可以建议你是使用新的jqGrid 4.3.2功能: jQuery的类似事件 。 你可以做的是一样的代码
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 %>
被创建)。 此外,如果需要,你可以定义更多的作为一个事件处理程序。 这是非常实用的是你要实现你项目的所有网格的一些常规操作。
以下是代码,这将帮助你获得用户密码,你的情况做一些修改
<asp:SqlDataSource runat="server" ID="SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:SQL2008_449777_fhsConnectionString %>"
SelectCommand="SELECT [OrderID], [RequiredDate], [ShipName],
[ShipCity], [Freight] FROM [Orders]"> </asp:SqlDataSource>
<trirand:JQGrid runat="server" ID="JQGrid1" DataSourceID="SqlDataSource1"
宽度= “600px的”>
以下是jQuery的,让你id列
<script type="text/javascript">
function getSelectedRow() {
var grid = jQuery("#<%= JQGrid1.ClientID %>");
var rowKey = grid.getGridParam("selrow");
if (rowKey)
alert("Selected row primary key is: " + rowKey);
else
alert("No rows are selected");
}
function selectSecondRow() {
var grid = jQuery("#<%= JQGrid1.ClientID %>");
grid.setSelection('10249');
}
</script>
或检查以下网址:
http://www.trirand.net/examples/grid/selection/selectedrow_client/default.aspx
请通过API读取。
希望这是你在找什么: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events
onSelectRow事件
最后得到什么,我需要我得到了很多的帮助,从实例 ,因此该解决方案是在jqGrid的的Rowselecting事件,我用jqGrid.SelectedRow让我的单元格的值。
例:
protected void ModifyAccountUserDetailsjqGrid_RowSelecting(object sender, Trirand.Web.UI.WebControls.JQGridRowSelectEventArgs e)
{
ModifyAccountUserDetailsjqGrid.SelectedRow;
}
PS奥列格非常感谢您慷慨help.Much赞赏。