1

infragistics asp.net Web グリッドを使用するアプリケーションがあります。メインページでは、グリッドは問題なく表示されます。ユーザーはメイン グリッドから行を選択できます。そこから、2 番目のグリッドがある場所にダイアログ ボックスが表示されます。2 番目のグリッドは、ユーザーが選択したグリッド 1 の行の詳細を表示するだけです。ここで、ユーザーが既存の値を変更できなかった 2 番目のグリッドに問題があります。最初のグリッドと 2 番目のグリッドで違うことをしたことは何も見つかりませんでした。私のコードを見てください:

<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 に答える