0
        $("#addressList").jqGrid({
        url: '/Storage/Shipping/GetCustomerAddresses?q=2&Customerid=' + $("#saveCustomerID").val(),
        datatype: "Json",
        jsonReader: {
            root: "Data.rows",
            page: "Data.page",
            total: "Data.total",
            records: "Data.records",
            repeatitems: true,
            userdata: "userdata",
            cell: "cell"
        },
        colNames: ['', 'Line 1', 'Line 2', 'City', 'State'],
        colModel: [
                         { name: 'myradio', width: 30, fixed: true, align: 'center', resizable: false, sortable: false,
                             formatter: function (cellValue, option) {
                                 return '<input type="radio" name="radio_' + option.gid + '" />';
                             } 
                         },
                         { name: 'Line1', index: 'Line1', width: 250 },
                         { name: 'Line2', index: 'Line2', width: 250 },
                         { name: 'City', index: 'City', width: 210 },
                         { name: 'State', index: 'State', width: 75 }
                    ],
        page: 1,
        rowNum: 50,
        rowList: [20, 50, 100],
        pager: '#pager',
        viewrecords: true,
        grouping: false,
        caption: "Addresses",
        mtype: "POST",
        width: "100%",
        height: "100%",
        loadonce: true,
        sortable: false,
        beforeSelectRow: function (rowid, e) {
            var radio = $(e.target).closest('tr').find('input[type="radio"]');
            radio.attr('checked', 'checked');
            $("#saveCustomerAddressID").val(rowid.toString());
            return true; // allow row selection
        },
        loadComplete: function () {
            var grid_ids = $("#addressList").jqGrid('getDataIDs');
            for (var i = 0; i < grid_ids.length; i++) {
                if ($("#saveCustomerAddressID").val() == grid_ids[i]) {
                    {
                        $("#addressList").jqGrid('setSelection', grid_ids[i], true);

                    }
                }
            }
        }
        //, postdata: { CustomerID: $("#saveCustomerID").val() }
    }); 

上記のコードは、loadcomplete で選択を正しく設定します。$("#saveCustomerAddressID").val() は、JSON データの行 ID です。ラジオボタンは beforeSelectRow で設定されます。設定するラジオボタンの行番号とグリッド列はわかっていますが、ラジオボタンはどのように設定するのですか?

4

1 に答える 1

0

行番号とグリッド列があれば、難しくはないはずです。ラジオボタンがある列のID(css)を取得します(これについては開発者ツールを確認してください)。ラジオボタンが列名「デモ」にあるとしましょう

IDは次のようになります

var demo= $("'#'+rowid+'Demo'")//check developer tools for confirmation

demo.attr('checked', 'checked');
$("#saveCustomerAddressID").val(rowid.toString());//continue with you loadComplete code

セットの選択には、jqgrid の setSelection メソッドを使用します。この後、loadcomplete のコードを続行します。

于 2012-08-03T03:04:23.430 に答える