strust2jqueryグリッドを使用しています。私の問題は、グリッド列名がstrust2アクションクラスまたはDAOクラスから直接取得されていることです。グリッドは、DAO class.soに基づいて動的に形成され、DAOクラスのプロパティはグリッド列名に動的に設定されます。
function sample()
{
$("#reloadgrid").jqGrid('setGridParam',{ datatype: 'json',page:1});
$.publish('reloadgrid1');
return false;
}
$.subscribe('reloadgrid1', function(event,element)
{
var selRowIds=new Array();
var id=new Array();
var disc=new Array();
var data=new Array();
var ret=new Array();
var selRowIds=$('#reloadgrid').jqGrid('getDataIDs');
if(selRowIds.length<=selRowIds.length)
{
for( var i=0;i<selRowIds.length;i++){
ret[i] = $("#reloadgrid").jqGrid('getRowData',selRowIds[i]);
id[i]=ret[i].id;
disc[i]=ret[i].disc;
data[i]=ret[i].data;
if(disc[i]==null||data[i]==null||disc[i]==""||data[i]=="")
{
alert("Please enter values into grid");
return false;
}
}
}
var totrec=$('#reloadgrid').jqGrid('getGridParam','reccount');
// alert(totrec);
$("#reloadgrid").jqGrid('setGridParam',{ datatype: 'json'});
$("#reloadgrid").jqGrid('setGridParam',{ postData:
{
id:id,
disc:disc,
data:data,
reccount:totrec},
url: "finalAction"
}).trigger('reloadGrid');
});
$.subscribe('rowselect', function(event, data)
{
var id=event.originalEvent.id;
alert(id);
var gr = $("#reloadgrid").jqGrid('getGridParam','selrow');
if(gr)
{
$('#reloadgrid').jqGrid('editRow',gr,true);
}
});
function formatLink(cellvalue, options, rowObject) {
return "<input type='button' value='save' onClick='return saverow()'>
<input type='button' value='delete' onClick='return deleterow()'>";
}
function saverow()
{
var gr = $("#reloadgrid").jqGrid('getGridParam','selrow');
if(gr!=null)
{
$('#reloadgrid').jqGrid('saveRow',gr);
return true;
}
else
{
return false;
}
return false;
}
function deleterow()
{
alert("Confirm deletion");
var gr = $("#reloadgrid").jqGrid('getGridParam','selrow');
if(gr!=null)
{
$("#reloadgrid").jqGrid('delGridRow',gr);
}
}
</script>
<body style="margin: 0px; padding: 0px; font-family: 'Trebuchet MS',verdana;">
<s:actionerror></s:actionerror>
<s:form id="simpleForm" action="finalAction">
<s:url var="gridid" action="gridAction" >
</s:url>
<s:url var="editid" action="EditAction"/>
<s:url var="finalid" action="finalAction"/>
</s:form>
<sjg:grid gridModel="gridmodelsample"
id="reloadgrid"
dataType="json"
loadonce="true"
href="%{gridid}"
rowNum="3"
gridview="true"
width="600"
viewrecords="true"
editinline="true"
editurl="%{editid}"
navigator="false"
navigatorEdit="false"
navigatorView="false"
navigatorAdd="false"
onSelectRowTopics="rowselect"
navigatorDelete="false"
navigatorInlineEditButtons="true"
caption="jQuery Inline Editing Grid"
pager="true"
multiselect="false"
rowList="5,10,15,20"
reloadTopics="reloadgrid"
onGridCompleteTopics="createbuttons">
<sjg:gridColumn name="editoperation" title="" formatter="formatLink"> </sjg:gridColumn>
</sjg:grid>
<sj:submit button="true" name="save" onClick="return sample()" value="save"/>
</body>
</html>
私の問題は、グリッド列の名前がアクションクラスから動的に取得され、グリッド列のヘッダーまたはタイトルに設定されることです。