我發現我們可以用JSON字符串加載jqGird。 請參閱map JSON data to jqGridStruts 2 jQuery網格從JSON字符串加載數據
是否可以在sjg:grid
標記中使用此功能。
我看標籤屬性,只發現數據可以從一個URL調用一個struts動作,該動作返回一個JSON數據,但在我的程序中我已經有了JSON值並需要通過它給jqGird。
如果標籤不支持數據,那麼使用包含在Struts 2 jQuery插件中的jqGrid的最佳方式是什麼。
我發現我們可以用JSON字符串加載jqGird。 請參閱map JSON data to jqGridStruts 2 jQuery網格從JSON字符串加載數據
是否可以在sjg:grid
標記中使用此功能。
我看標籤屬性,只發現數據可以從一個URL調用一個struts動作,該動作返回一個JSON數據,但在我的程序中我已經有了JSON值並需要通過它給jqGird。
如果標籤不支持數據,那麼使用包含在Struts 2 jQuery插件中的jqGrid的最佳方式是什麼。
將dataType="local"
設置爲sjg:grid
並刪除href
屬性。然後從數組中提供行數據。例如
<sjg:grid
id="gridtable"
caption="Example (Editable/Multiselect)"
dataType="local"
pager="true"
navigator="true"
navigatorSearchOptions="{sopt:['eq','ne','lt','gt']}"
navigatorAddOptions="{height:280, width:500, reloadAfterSubmit:true}"
navigatorEditOptions="{height:280, width:500, reloadAfterSubmit:false}"
navigatorEdit="true"
navigatorView="true"
navigatorViewOptions="{height:280, width:500}"
navigatorDelete="true"
navigatorDeleteOptions="{height:280, width:500,reloadAfterSubmit:true}"
gridModel="gridModel"
rowList="5,10,15"
rowNum="5"
rownumbers="true"
editurl="%{editurl}"
editinline="true"
multiselect="true"
onSelectRowTopics="rowselect"
>
<sjg:gridColumn name="id" index="id" title="Id" formatter="integer" editable="false" sortable="true" search="true" sorttype="integer" searchoptions="{sopt:['eq','ne','lt','gt']}"/>
<sjg:gridColumn name="name" index="name" key="true" title="Country Name" editable="true" edittype="text" sortable="true" search="true" sorttype="text"/>
</sjg:grid>
<script type="text/javascript">
$(document).ready(function(){
var mydata = [{id:"1",name:"Roman C"}];
//for(var i=0;i<=mydata.length;i++) $("#gridtable").jqGrid('addRowData',i+1,mydata[i]);
$("#gridtable").jqGrid('setGridParam', {
data: mydata
}).trigger("reloadGrid");
});
</script>
上面的代碼工作完美,它爲每個網格加載添加行。如果ü要作出行動Ajax調用並獲取列表,並解析它添加到myData的
$("#gridtable").jqGrid('setGridParam', {
data: mydata
}).trigger("reloadGrid");
另外:如果妳希望有新的數據,每次ü可以使用這樣的:
var allParameters = $("#gridtable").jqGrid("getGridParam");
allParameters.data = myData;
$("#gridtable").trigger('reloadGrid');
代替。檢查此:
$.ajax({
url: "myAction.action", cache: false, dataType: 'json', data: "employeeId=" +
employeeIdList,
success: function (data) {
var jsonData = JSON.stringify(data.jsonResponse);
var parsedData = JSON.parse(jsonData);
if (parsedData.hasResults) {
var myData = parsedData.jsonResults;
$(document).ready(function() {
var allParameters = $("#gridtable").jqGrid("getGridParam");
allParameters.data = myData;
$("#gridtable").trigger('reloadGrid');
});
}
} });
我認爲這應該是直截了當的。使用網格添加行數據。 –
@RomanC你的意思是:使用sjg:grid還是直接使用jqGrid ?! –
是的,無論如何。 –