سؤال

كل شيء يعمل بشكل جيد مع JQGrid الخاص بي باستثناء مشكلة صغيرة. لقد حددت postdata أدناه:

 $(document).ready(function() {

$("#ctl00_ContentPlaceHolder2_drpUSite").change(function() {
    site = ($("#ctl00_ContentPlaceHolder2_drpUSite").val());
    loadusergrid();
});
var usrparams = new Object();
var site = ($("#ctl00_ContentPlaceHolder2_drpUSite").val());
//----grid code---------
$("#users").jqGrid({
    prmNames: {
        _search: "isSearch",
        nd: null,
        rows: "numRows",
        page: "page",
        sort: "sortField",
        order: "sortOrder"
    },
    // add by default to avoid webmethod parameter conflicts
    postData: { searchString: '', searchField: '', searchOper: '', sites: site },
    datatype: function(postdata) {
        mtype: "GET",
        $.ajax({
            url: 'Users.aspx/GetUsers',
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(postdata),
            dataType: "json",
            success: function(data, st) {
                if (st == "success") {
                    var grid = $("#users")[0];
                    var m = JSON.parse(data.d);
                    grid.addJSONData(m);
                }
            },
            error: function() {
                alert("Loading Failed!");
            }
        });
    },
    // this is what jqGrid is looking for in json callback
    jsonReader: {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        cell: "cell",
        id: "login",
        repeatitems: true
    },
    colNames: ['Login', 'First Name', 'Last Name', 'Email', 'Site', 'Role', 'Room', 'UnitID', 'Supervisor', 'Super'],
    colModel: [
    { name: 'login', index: 'login', width: 20 },
    { name: 'fname', index: 'fname', width: 20, hidden: true },
    { name: 'lname', index: 'lname', width: 60, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} },
    { name: 'email', index: 'email', width: 20, align: "center", sortable: false },
    { name: 'site', index: 'site', width: 50, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} },
    { name: 'role', index: 'role', width: 15, align: "center", sortable: true, searchoptions: { sopt: ['eq', 'ne']} },
    { name: 'room', index: 'room', width: 30, align: "center", sortable: true },
    { name: 'unitid', index: 'unitid', width: 10, align: "center", sortable: false },
    { name: 'super', index: 'super', width: 20 },

    { name: 'supername', index: 'supername', width: 10, align: "center", sortable: false },
],

    pager: "#pageusers",
    viewrecords: true,
    caption: "Registered Users",
    imgpath: 'themes/steel/images',
    rowNum: 20,
    rowList: [10, 20, 30, 40, 50],
    sortname: "pname",
    sortorder: "desc",
    showpage: true,
    gridModel: true, gridToolbar: true,
    onSelectRow: function(id) {
        var ret = jQuery("#users").getRowData(id);
        accpara.id = ret.id;
        accpara.pname = ret.pname;
        accpara.pid = ret.pid;
        accpara.bld = ret.bld;
        accpara.cname = ret.cname;
        accpara.amt = ret.amt;
        accpara.status = ret.status;
        accpara.notes = ret.notes;
        accpara.lname = ret.lname;
    }
});
jQuery("#users").navGrid('#pageusers', { view: false, del: false, add: false, edit: false },
 {}, // default settings for edit
 {}, // default settings for add
 {}, // delete
 {closeOnEscape: true, multipleSearch: true,
 closeAfterSearch: true
 }, // search options
 {}
 );
$("#users").setGridWidth(1300, true);
$("#users").setGridHeight(500, true);
jQuery("#users").jqGrid('filterToolbar');
//----grid code ends here



   function loadusergrid() {
       $("#users").setGridParam({ page: 1 }, { pgbuttons: true }, { pginput: true }, { postData: { "site": site} }).trigger("reloadGrid");
    }
});

عندما يتم تحميل الصفحة للمرة الأولى ، هذا يعمل ..

الآن لدي 4 منسدلة تنقص المستخدمين. لقد كتبت وظيفة تقوم بإعادة تحميل الشبكة عند تغيير القائمة المنسدلة ، لكنها لا تعمل .. ما الخطأ الذي أفعله هنا ؟؟ عندما أقوم بتمكين Postback من القائمة المنسدلة ، أحصل على النتيجة المصفاة. أريد تجنب postbacks على صفحتي :). لقد أضفت الآن منسدلة الموقع كمرشح. بمجرد أن يبدأ هذا العمل في إضافة 3 المتبقية.

يظهر Firebug أن مكالمة Ajax يتم إطلاقها بنجاح ولكن مع اسم اعتصام فارغ. يرجى ملاحظة أن الموقع المنسدلة يحصل على قيمة فارغة عند تحميل الصفحة للمرة الأولى.

شكرا لك مقدما

هل كانت مفيدة؟

المحلول

$("#mygrid").setPostData({parameters}); عمل الحيلة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top