0

我有一个 jqGrid,它以两种方式之一填充 - 提交按钮将在表上创建一行,然后在刷新 jqGrid 时加载该行,并且还通过选择网格上的一行,这将导致提交 &取消按钮出现,允许用户重新提交之前提交的项目。

所需的行为(在 jqGrid 上)是(1)在刷新 jqGrid 时显示消息,因为项目提交到表中,(2)当用户选择 & 时重新提交 jqGrid 中选定的消息重新提交它们。除非选择了一行,否则重新提交/取消按钮不可见,此时页面上其他地方的控件被锁定并且在用户提交或取消选择之前不可选择。重新提交时,再次添加项目,刷新网格,清除所有选择并隐藏重新提交/取消按钮。在取消时,它不会刷新网格,而是清除所做的选择,并隐藏重新提交/取消按钮。

In Firefox, when one of the previously submitted items is selected (for example 4 rows are present & row 2 is clicked on), row #1 is highlighted & if submitted, it's row 1 (and not row 2) that is re-submitted . 选择行的顺序似乎无关紧要,但第 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>

我很感激对每个浏览器发生的事情的任何想法。

谢谢,

小号

4

1 回答 1

0

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

于 2013-05-20T14:21:13.283 回答