2

私は を使用しています , にユーザーのリストを表示するためAsp.Net/C#に使用しているページの, には次の列が含まれていますjqGridAdminjqGrid

  1. ユーザーコード
  2. ファーストネーム
  3. ミドルネーム
  4. 苗字
  5. Eメール

ここに私のマークアップがあります

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

What I require is that when the admin clicks a row I want to get the value of User Code of the clicked row.I am new to jqGrid , so I am not having a clear idea as to how I can go about this. Can anybody point me in the right direction.Any suggestion are welcome.

Thanks

4

4 に答える 4

5

まず、要件に対応する最適なコールバックを選択する必要があります。通常は になりますがonSelectRow、その他の状況では、 のような別のコールバックonCellSelectまたはbeforeSelectRowよりondblClickRow優れたものになります。

コールバックでは、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 にローカル データがある場合は、最後の 1 つの方法が最適です (datatype: 'local'またはリモート データ型をdatatype: 'json'と組み合わせて使用​​しますloadonce: true)。

更新: コメントへのいくつかの投稿と質問のテキストの更新の後、無料のオープン ソース JavaScript ライブラリjqGridの代わりに、 jqSuite for ASP.NET WebFormsまたは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>要素が作成された後)。さらに、必要に応じて複数を 1 つのイベント ハンドラーとして定義できます。すべてのグリッドに共通のアクションをプロジェクトに実装することは非常に実用的です。id<%= ModifyAccountUserDetailsjqGrid.ClientID %>

于 2012-04-28T09:33:01.630 に答える
1

以下は、いくつかの変更を行うことで、ケースでユーザーコードを取得するのに役立つコードです

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

以下は、列IDを提供するjqueryです

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

または、次の URL を確認してください。

http://www.trirand.net/examples/grid/selection/selectedrow_client/default.aspx

于 2012-04-28T07:18:33.783 に答える
1

API を読んでください。

これがあなたが探しているものであることを願っています: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events

onSelectRow イベント

于 2012-04-28T07:20:21.500 に答える
0

最後に、必要なものを取得するために、Exampleから多くの助けを得た ので、解決策はjqGridのRowselectingイベントにあり、jqGrid.SelectedRowを使用してセルの値を取得しました。

例:

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

PSオレグはあなたの寛大な助けに感謝します。

于 2012-04-30T06:00:42.050 に答える