2013-05-17 67 views
0

我有一个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> 

我会很感激什么与每个浏览器发生的任何想法。

感谢,

小号

回答

0

这一定是内存问题。如前所述执行上述操作,但是当系统重新启动时,所有问题都消失了。