0

http://www.trirand.com/blog/jqgrid/jqgrid.html

最初の列をアクションとして、最初の列に編集、保存、キャンセルとして3つのボタンがある5つの列を持つjqgridがあります。データリストをjqgridにバインドするとき、2つの問題があります...最初の列には3つのボタンがあるため、列のデータが間違って配置され、リストの列のデータが最初の列にバインドされます列名としてアクションを持つグリッドの列で、他のすべての列データが間違って配置されています

アクション列の編集ボタンをクリックすると、グリッド内のすべての行がアクション列を含むインライン編集機能をサポートしているため、保存をクリックするオプションがありません。

私のjQueryコード:

        <script type="text/javascript">
        $(function () {
        var lastsel;

        jQuery("#list").jqGrid({
            url: '/Home/GetStudents/',
            datatype: 'json',

            mtype: 'POST',
            colNames: ['Actions', 'StudentID', 'FirstName', 'LastName', 'Email'],
            colModel: [
      { name: 'act', index: 'act', width: 75, sortable: false },
      { name: 'StudentID', sortable: false, key: true },
      { name: 'FirstName', key: true },
      { name: 'LastName', sortable: false, key: true },
      { name: 'Email', width: 200, sortable: false, key: true}],
            cmTemplate: { align: 'center', editable: true },
            pager: '#pager',
            width: 750,
            rowNum: 15,
            rowList: [5, 10, 20, 50],
            sortname: 'StudentID',
            sortorder: "asc",
            viewrecords: true,
            caption: ' My First JQgrid',

            gridComplete: function () {
                var ids = jQuery("#list").jqGrid('getDataIDs');

                for (var i = 0; i < ids.length; i++) {
                    var cl = ids[i];
                    be = "<input style='height:22px;width:20px;' type='button' value='E' onclick=\"jQuery('#list').editRow('" + cl + "');\"  />";
                    se = "<input style='height:22px;width:20px;' type='button' value='S' onclick=\"jQuery('#list').saveRow('" + cl + "');\"  />";
                    ce = "<input style='height:22px;width:20px;' type='button' value='C' onclick=\"jQuery('#list').restoreRow('" + cl + "');\" />";
                    jQuery("#list").jqGrid('setRowData', ids[i], { act: be + se + ce });
                }
            },

            editurl: '/Home/About/',
            //                data: { get_param: selectedDescription },
            caption: "jQgrid Sample"

        });

        jQuery("#list").jqGrid('navGrid', "#prowed2", { edit: false, add: false, del: false });
    });

</script>
4

1 に答える 1

0

を使用するため、列の定義にプロパティをcmTemplate: { editable: true }追加する必要があります。さらに、 の先頭に新しい列を追加する場合は、サーバーから返される JSON 内の要素の位置を調整する必要があります。さらに、プロパティを持つ列は1 つだけです。行(の)の属性の値が列から取得されることを意味します。プロパティを使用する場合、JSON 入力からのプロパティは無視されます。一意の値を含む列からのみ使用できます。editable: trueact'colModelkey: trueidid<tr>idkey: true

于 2012-12-05T07:14:55.103 に答える