获得在jqGrid的一排单击列的值(Getting value of a column on cli

2019-06-24 00:56发布

我使用Asp.Net/C# ,在我的页面之一我使用jqGrid显示用户列表的Admin ,在jqGrid包含以下几列

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

这里是我的标记

<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建议是值得欢迎的。

谢谢

Answer 1:

首先,你应该选择对应您的要求的最佳回调。 通常,这将是onSelectRow ,但在一些其他情况下,像另一个回调onCellSelectbeforeSelectRowondblClickRow更好。

在回调你rowid (该id<tr>作为第一个参数行)。 您可以使用getCellgetRowDatagetLocalRow ,以获得含有一些细胞。 例如

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 %>被创建)。 此外,如果需要,你可以定义更多的作为一个事件处理程序。 这是非常实用的是你要实现你项目的所有网格的一些常规操作。



Answer 2:

以下是代码,这将帮助你获得用户密码,你的情况做一些修改

    <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



Answer 3:

请通过API读取。

希望这是你在找什么: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events

onSelectRow事件



Answer 4:

最后得到什么,我需要我得到了很多的帮助,从实例 ,因此该解决方案是在jqGrid的的Rowselecting事件,我用jqGrid.SelectedRow让我的单元格的值。

例:

protected void ModifyAccountUserDetailsjqGrid_RowSelecting(object sender, Trirand.Web.UI.WebControls.JQGridRowSelectEventArgs e)
        {
            ModifyAccountUserDetailsjqGrid.SelectedRow;   
        }

PS奥列格非常感谢您慷慨help.Much赞赏。



文章来源: Getting value of a column on click of a row in jqGrid