0

私はこのajaxコードを持っています。次のページに行オブジェクト送信のすべての詳細を表示できるように、行オブジェクトを取得してコントローラーに送信する方法、onselectrow、フォーマッターも試しました。

var jq = jQuery.noConflict();

jq(document).ready(function() {
    var grid = jq("#grid");
    grid.jqGrid({
        url:'${pageContext.request.contextPath}/getRegisteredClassesData.html',
        datatype: 'json',
        mtype: 'POST', 
        colNames:['Course Name'],
        colModel:[{name:'courseName',index:'courseName', width:55, 
                formatter: function (cellvalue, options, rowObject) {
                var cellPrefix = '';
                return cellPrefix + '<a href= ${pageContext.request.contextPath}/registeredClassesDetail.phone?regNo='+ rowObject.regNo +'&courseId='+ rowObject.courseId +'">' + cellvalue + '</a>';
            }
        },],
        rowNum:5,
        height: 130,
        autowidth: true,
        pager: '#pager',
        hidegrid:false,
        viewrecord: true,
        emptyrecords: "Empty records",
        loadComplete: function() {},
        jsonReader : {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            cell: "cell",
            repeatitems: false,
            id: "id"
        }
    });

    grid.jqGrid('navGrid','#pager',
        {add:false, edit:false, del:false, search:false}
    );
}); 

コントローラーから、送信したパラメーターを取得したいのですが、これは courseId と regNo です。しかし、コントローラーでデバッグすると、両方ともnullです。この 2 つのパラメーターを使用してドメイン内を検索し、正しいデータが表示されるようにしたいと考えています。私を助けてください。よろしくお願いします。

これは、詳細を表示するページ内の ajax コードです。ほとんど同じです。しかし、最も重要なのは、データを取得して、任意の形式で表示できるようにすることです。

    var jq = jQuery.noConflict();

 jq(document).ready(function() {
var grid = jq("#grid");
var regNo = '<%=request.getSession().getAttribute("regNo")%>';
var courseId = '<%=request.getSession().getAttribute("courseId")%>';

grid.jqGrid({
    url:'${pageContext.request.contextPath}/getRegisteredClassesDetails.html',
    datatype: 'json',
    mtype: 'POST',
    /* postData: {
        courseId: function() { return jQuery("#courseId option:selected").val(); },
        regNo: function() { return jQuery("#regNo option:selected").val(); }
    }, */
    postData:{regNo:regNo,
        courseId:courseId},  
   colNames:['Registration #', 'Status', 
    'Course Name', 'Location', 
    'Start Date', 'Registered Person'],

    colModel:[
        {name:'regNo',index:'regNo', width:20},
        {name:'regStatus',index:'regStatus', width:20},
        {name:'courseName',index:'courseName', width:150},
        {name:'courseLoc',index:'courseLoc', width:30},
        {name:'startDate',index:'startDate', width:25},
        {name:'fullName',index:'fullName', width:30,sortable:false}],
    rowNum:5,
    rowList:[5,10,20],
    height: 200,
    autowidth: true,
    pager: '#pager',
    sortname: 'startDate',
    hidegrid:false, //disable the collapse/expand function
    viewrecord: true,
    caption:"Course Details",
    emptyrecords: "Empty records",
    //multiselect:true,
    loadComplete: function() {

    },
    jsonReader : {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        cell: "cell",
        repeatitems: false,
        id: "id"
    }
});

grid.jqGrid('navGrid','#pager',
    {add:false, edit:false, del:false, search:false}
);

});

4

1 に答える 1

1

`以下のようなものを追加します

postData: {
        courseId: function() { return jQuery('#courseId').val(); },
        regNo: function() { return jQuery('#regNo').val(); }
    },`
于 2013-01-30T10:37:25.200 に答える