2013-01-15 37 views
0

我使用的是Struts 2.3.7,struts2-jquery-grid-plugin-3.5.0。禁用struts2-jqgrid中的特定行

<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是「分配」,那麼該行是禁用否則啓用。如何做到這一點,因爲我是一個新手,所以我期望一些很好的解決方案形式,你們。我還添加了一個截圖。 enter image description here

更新:這些是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> 

回答

0

的jqGrid有aftersavecell事件。通過使用它,你可以調用一個方法時,曾經將值設置爲網格......裏面的方法,你可以檢查你的條件,並設置屬性網格...

+0

感謝,這是真的,我們有一大堆的事件,而是如何激發這些事件,請給我一些例子 –

0

我有一個類似的場景,我通過強大的DOM操作jQuery實現了。

我使用了一個MVC的webGrid,它實際上呈現爲html內的表格,我必須從其一列的值中應用一些邏輯。

首先檢查該網格執行時生成的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); 
    }); 
} 
+0

這是什麼「TD:第n個孩子」 –

+0

我問/在我的迴應說清楚對於你的問題,如果這個網格呈現爲DOM內的表格,那麼這可能是你的解決方案。那麼'td:第n個孩子'將在表格行內查找n個td子元素。你能否告訴我當這個網格執行時它注入了什麼類型的html元素? – Rohit416

+0

我剛剛檢查過我的網格進入螢火蟲,所以網格呈現爲一個包含像th,tbody,tr&td –