我有一个jqGrid,它以两种方式之一填充 - 提交按钮将在表上创建一个行,然后加载到jqGrid的刷新上,也可以通过选择网格上的一行,这将导致提交&取消按钮出现,允许用户重新提交以前提交的项目。jqGrid - Firefox和IE的奇怪行为
期望的行为(在jqGrid上)是:(1)消息在jqGrid刷新时显示,因为项目被提交给表;(2)jqGrid中的选定消息将被重新提交时用户选择&重新提交它们。除非选择了一行,否则重新提交/取消按钮不可见,此时页面上其他位置的控件将被锁定,并且在用户提交或取消选择之前不可选择。当重新提交时,该项目再次添加,并且网格被刷新,并且任何选择被清除&重新提交/取消按钮被隐藏。在取消时,它不刷新网格,但清除所做的选择,并隐藏重新提交/取消按钮。在Firefox中,当选择其中一个先前提交的项目(例如存在4行&第2行被点击)时,行#1被突出显示&如果提交,它是行1(而不是行2)被重新提交。行的选择顺序似乎并不重要,但只有在点击时才突出显示为选中的行1 & 3。
在IE中,有几件事情是一个问题。首先,不显示页脚行。其次,单击任何行都不会显示按钮或以任何方式显示选择行。
下面是jqGrid的代码。
$("#myGrid").jqGrid({
url: changedUrl,
datatype: "xml",
colNames: ["Destination", "Message Text", "Send Time"],
colModel:[
{name:"Destination",index:"Destination",width:col1width,align:"left", xmlmap:"Rowset>Row>Destination",sortable:false},
{name:"MessageText",index:"MessageText",width:col2width,align:"left",xmlmap:"Rowset>Row>MessageText",sortable:false},
{name:"SendTime",index:"SendTime",width:col3width,align:"left",xmlmap:"Rowset>Row>SendTime",sortable:false}
],
viewrecords: true,
caption: capMsg,
// rowNum: nbrRows,
rownum: 0,
autowidth: false,
//height: gridheight,
height: "100%",
width: gridwidth,
//rowList:[10,20,30],
toolbar: [true, "top"],
pager: jQuery("#pager1"),
sortname: "SendTime",
defaults: {
recordtext: "View {0} - {1} of {2}",
emptyrecords: "No records to view",
pgtext: "Page {0} of {1}"
},
// code to view the row follows
onSelectRow: function(id) {
// $(this).jqGrid("viewGridRow", id, {closeOnEscape:true});
var gridRow = $(this).jqGrid("getRowData",id);
$(".sendAgainControls").show();
$("#dList").prop("disabled", true);
$("#cmlist").prop("disabled", true);
$("#SendMsg").prop("disabled", true);
$("#ReSend").click(function() {
//console.log("ReSend Button was pressed. Dest = " + gridRow.Destination + " CM = " + gridRow.MessageText);
ReSendMessage(gridRow.Destination, gridRow.MessageText);
$(".sendAgainControls").hide();
$("#dList").prop("disabled", false);
$("#cmlist").prop("disabled", false);
//$(this).jqGrid("resetSelection");
});
$("#Cancel").click(function() {
$(".sendAgainControls").hide();
$("#dList").prop("disabled", false);
$("#cmlist").prop("disabled", false);
$("#myGrid").jqGrid("setSelection", "-1");
ReloadGrid();
});
},
xmlReader: {
root: "Rowsets",
row: "Row",
repeatitems: false,
id: "Destination"
}
});
由于我在每个浏览器中都有多个问题,我不确定从哪里开始。
网格的HTML如下:
<table id="myGrid" border="0" cellpadding="0" cellspacing="0" style="width: 80%">
<div id="pager1"></div>
</table>
<table id="ReSend" border="0" cellpadding="0" cellspacing="0" style="width: 80%">
<tr>
<td class="sendAgainControls" align="center">
<div id="sendAgain">
<input id="ReSend" type="submit" value="Re-Send Selected" />
<input id="Cancel" type="submit" value="Cancel Re-Send" />
</div>
</td>
</tr>
</table>
我会很感激什么与每个浏览器发生的任何想法。
感谢,
小号