如何使用FlexiGrid将参数传递给Web服务调用

时间:2012-01-03 03:11:18

标签: jquery flexigrid

我正在尝试将参数传递给对flexigrid的Web服务调用。

我设置FlexiGrid工作得很好,除非我尝试将一个参数传递给我的Web服务调用,但在尝试使用该一个参数加载网格时看到500内部服务器错误。

理想情况下,当用户点击提交时,然后调用javascript函数来调用对flexigrid的ajax调用,但是我在firebug中看到500内部服务器错误。

说Web服务调用中缺少lastName参数。此参数是从姓氏搜索文本框中获取的。

任何帮助都表示赞赏,因为我是FlexiGrid的新手。

这是我的ajax电话:

$("#userflexiGrid").flexigrid({
    url: 'FlexiGridService.asmx/GetDirectory',
    params: [{ name: 'lastName', value: 'doe'}],
    dataType: 'xml',
    colModel: [
            { display: 'Id', name: 'Employeeno', width: 30, sortable: true, align: 'left' },
            { display: 'Name', name: 'Employee', width: 130, sortable: true, align: 'left' },
            { display: 'Bureau', name: 'Bureau', width: 180, sortable: true, align: 'left' }
            ],
    searchitems: [
            { display: 'Name', name: 'Employee' },
            { display: 'Bureau', name: 'Bureau' },
            ],
    sortname: "Name",
    sortorder: "asc",
    usepager: true,
    title: 'Flexi Users',
    useRp: true,
    rp: 20,
    showTableToggleBtn: false,
    pagestat: 'Displaying: {from} to {to} of {total} matches.',
    //width: 700,
    singleSelect: true,
    onSubmit: addFormData,
    height: 260
});

3 个答案:

答案 0 :(得分:0)

而不是:

$("#userflexiGrid").flexigrid({
    url: 'FlexiGridService.asmx/GetDirectory',
    params: [{ name: 'lastName', value: 'doe'}],
    dataType: 'xml',

这样做:

$("#userflexiGrid").flexigrid({
    url: 'FlexiGridService.asmx/GetDirectory?lastName=doe',
    dataType: 'xml',

实际上,没有名为 params 的东西。

请查看文档页面here

答案 1 :(得分:0)

您可以在onSubmit事件中使用flexOptions,如下所示:

onSubmit: function() { 
$('#userflexiGrid').flexOptions(
 {
  newp:1, 
  params:[{name: 'lastName', value: 'doe'}]
 }); 
}

搜索文本框的值可以通过(而不是硬编码为'doe')获得:

  

$( 'qsbox。')VAL();

答案 2 :(得分:0)

试试这个

jQuery('#userflexiGrid').flexOptions({                            
                            url: 'FlexiGridService.asmx/GetDirectory',
                            qtype: 'lastName',
                            query: 'doe'                            
                        }).flexReload();