0

Struts 2.3.7、struts2-jquery-grid-plugin-3.5.0 を使用しています。

<sjg:grid
    id="gridtable"
    caption="Issue-Summary"
    dataType="json"
    href="%{remoteurl}"
    pager="true"
    gridModel="finalGridModel"
    rowList="10,15,20"
    rowNum="15"
    rownumbers="true"   
>
    <sjg:gridColumn name="issue_id"  id="issueId"  index="id" title="Issue-ID" formatter="integer"  sortable="false"/>
    <sjg:gridColumn name="issue_description" index="issue_description" title="Issue-Details"  sortable="false"/>
    <sjg:gridColumn name="issue_raised_date" index="issue_raised_date" title="Issue-Date"  formatter="date"  sortable="false"/>

    <sjg:gridColumn  name="Details" title="Action"  formatter="formatLink" sortable="false"/>
    <sjg:gridColumn name="issue_status"  index="issue_status" title="Current Status"  sortable="false"/>
    <sjg:gridColumn name="assigned_to"  index="issue_status" title="Assigned To"  sortable="false"/>
</sjg:grid>

ここでは、特定の行または列、つまりjqgridがロードされた後の詳細を無効にしたいと考えて います。この列は、何らかの操作を実行するためのリンクです。行の無効化は issue_status に基づいています。current_statusが " Assigned " の場合、この行は無効になり、それ以外の場合は有効になります。私は初心者なので、これを達成する方法はあります。皆さんからの良い解決策を期待しています。また、スクリーンショットを追加しました。ここに画像の説明を入力

Updated : これらは、jqgrid の実行時に生成される html です。

<table class="ui-jqgrid-htable" cellspacing="0" cellpadding="0" border="0" aria-labelledby="gbox_gridtable" role="grid" style="width: 925px;">
<thead>
<tr class="ui-jqgrid-labels" role="rowheader">
<th id="gridtable_rn" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 25px;">
<div id="jqgh_gridtable_rn">
<span class="s-ico" style="display:none">
<span class="ui-grid-ico-sort ui-icon-asc ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-ltr" sort="asc"></span>
<span class="ui-grid-ico-sort ui-icon-desc ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-ltr" sort="desc"></span>
</span>
</div>
</th>
<th id="gridtable_issue_id" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
<th id="gridtable_issue_description" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
<th id="gridtable_issue_raised_date" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
<th id="gridtable_" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
<th id="gridtable_issue_status" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
<th id="gridtable_assigned_to" class="ui-state-default ui-th-column ui-th-ltr" role="columnheader" style="width: 150px;">
</tr>
</thead>
</table>
</div>
</div> 
4

2 に答える 2

0

私は、jQueryの強力なDOM操作によって達成したやや似たようなシナリオを持っていました。

私は実際にhtml内のテーブルとしてレンダリングされるMVCのwebGridを使用し、その1つの列の値からいくつかのロジックを適用する必要があります。

まず、このグリッドが実行時に生成されるhtml要素のタイプを確認します。それがテーブルを生成する場合、これはあなたにとって役立つかもしれません、

    $('table#grid').ready(function () {
        MatchColumnValue(5);     //Select column node to match value from..starts from 0!
    });

これが関数です。

function MatchColumnValue(nodeValue) {
    $('table#grid tr').each(function () {
        $(this).find('td:nth-child(' + nodeValue + '):contains(Assigned)').parent().attr('disabled', true);
    });
}
于 2013-01-15T07:13:13.747 に答える
0

jqgrid には aftersavecell イベントがあります。それを使用すると、値がグリッドに設定されたときにいつでもメソッドを呼び出すことができます...メソッド内で、条件を確認し、プロパティをグリッドに設定できます...

于 2013-01-15T07:04:40.523 に答える