1

我有一个使用基础设施 asp.net 网络网格的应用程序。在主页面中,Grid 显示没有问题。用户可以从主网格中选择一行,从那里弹出第二个网格所在的对话框。第二个网格仅显示用户选择的网格行的详细信息。现在我在第二个网格中有一个问题,用户无法修改任何现有值。我找不到我在第二个网格中所做的与第一个网格不同的事情。看我的代码:

<script type="text/javascript">
 $(document).ready(function () {
        $.ig.loader({
            scriptPath: "js/",
            cssPath: "css/",
            resources: "igGrid.*"
        });

        $.ajax({
            type: "POST",
            url: "Default.aspx/LoadA",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            error: function (result) {
                alert(result.d);               }
        });

        function OnSuccess(result) {
        $.ig.loader(
        function () {
        var jsonLocal = new $.ig.JSONDataSource({ dataSource: result.d, responseDataKey: "d" });

                    $("#tblMain").igGrid({
                        dataSource: jsonLocal,
                        autoGenerateColumns: false,
                        renderCheckboxes: true,
                        width: "100%",
                        height: "100%",
                        primaryKey: "ColA",
                        columns: [
      { key: "ColA", headerText: "ColA", dataType: "number" },
      { key: "ColB", headerText: "ColB",ataType: "string" }],
                        features: [
                        { name: "Updating",
                            editMode: "row",
                            columnSettings: [
                                { columnKey: "ColA", readOnly: true }                                       ]
                        },
                        { name: "Resizing",
                            deferredResizing: false,
                            allowDoubleClickToResize: true
                        },
                        {
                            name: "Filtering",
                            allowFiltering: true,
                            caseSensitive: false,
                            type: "local"
                        },
                        {
                        name: "Selection",
                        mode: "row",
                        cellSelectionChanging: igGridCellSelectionChanged
                    }
                        ]  //end feature
                }) //end igGrid

            } //end function
            ) //end loader


        } //end onSuccess

        $("#tblMain").on("iggridselectionrowselectionchanged", igGridCellSelectionChanged);

        function igGridCellSelectionChanged(event, ui) {
            var ColA = ui.row.element[0].cells[0].innerText;
             $.ajax({
                type: "POST",
                url: "Default.aspx/LoadB",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: '{ColA:"' + ColA+ '"}',
                success: OnAttachments,
                error: function (result) {
                    alert(result.d);
                }
            });

        };

        function OnAttachments(result) {
            $.ig.loader(function () {
               $.ig.loader(function () {
        var jsonLocal = new $.ig.JSONDataSource({ dataSource: result.d, responseDataKey: "d" });
                    $("#tblAttachment").igGrid({
                        dataSource: jsonLocal,
                        width: "800",
                        height: "80%",
                        autoGenerateColumns: false,
                        primaryKey: "UId",
                        columns: [
                        { key: "Col1", headerText: "Col1", dataType: "number", width: "50px" },
                        { key: "Col2", headerText: "Col2", dataType: "string", width: "100px" }
                    ],
                        fixedHeaders: true,
                        showHeader: true,
                        features: [{ name: "Updating"}]
                    });
                });
            });
        };


        $('#dialog').dialog({
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            width: 800,
            height: 500,
            buttons: [{ text: "OK",
                click: function () {
                    $("#dialog").dialog("close");
                }
            }] //end buttons 
        }); //end dialog


    })

</script>

<body>
<div class="page">
        <table>
        <tr><td>
        <table id="tblMain" border="1" align="center"></table>
        </td></tr>
        <tr><td>
        <table>
            <tr>
                <td align="right">
                    <button id="btnAttach" class="button">
                        Additional Info</button>
                </td>
            </tr>
        </table>
        </td></tr></table>

        <div id="dialog" title="Attach Contracts">
        <table><tr><td>
        <table id="tblAttachment" border="1" align="center">
                <tr><td></td></tr>
        </table>
        </td></tr></table>

        </div>          
</div>
</body>
4

1 回答 1

1

我认为问题是由将焦点从输入更改为该对话框引起的。只需将trackFocus属性设置为false.

//Initialize
$(".selector").igDialog({
    trackFocus: false
});
于 2013-06-03T14:29:20.427 回答