时间:2010-07-24 04:52:26

标签: web-services asmx flexigrid

6 个答案:

答案 0 :(得分:4)

变化:

data: '{ id: 23, area: "anywhere" }',

为:

params: [{name:'id', value: 23},{name:'area', value: 'anywhere'}],

或者如果您想使用新选项重新加载:

$("#flex1").flexOptions({params: [{name:'id', value: 23},{name:'area', value: 'anywhere'}]}).flexReload();

答案 1 :(得分:3)

可以使用params:选项指定其他参数。如果你看一下flexigrid.js中的第615-618行,你可以看到代码循环遍历p.params中的每个项目,并将其添加到默认列表(page,rp,sortname等)。

答案 2 :(得分:2)

我最终做的是这个 在flexigrid.js的第713行,我添加了这个

            for(opt in p.optional){
              param[param.length] = {name:opt,value:p.optional[opt]};
            }

然后我可以做这样的事情

 $('#flex1').flexigrid({
        method: 'POST',
        url: '/services/MHService.asmx/GetSurgicalHistory',
        dataType: 'xml',
        colModel: [
                { display: 'Surgical Procedure', name: 'SurgicalProcedure', width: 120, sortable: true, align: 'left' },
                { display: 'Notes', name: 'Notes', width: 120, sortable: true, align: 'left' },
                { display: 'Complications', name: 'Complications', width: 120, sortable: true, align: 'left' }
            ],
        searchitems: [
                { display: 'Surgical Procedure', name: 'SurgicalProcedure' },
                { display: 'Notes', name: 'Notes' },
                { display: 'Complications', name: 'Complications' }
            ],
        sortname: 'SurgicalProcedure',
        singleSelect: true,
        sortorder: 'asc',
        usepager: true,
        title: 'Surigcal History',
        useRp: true,
        rp: 10,
        showTableToggleBtn: true,
        width: 805,
        height: 200,
        optional: { id: 23, area: "anywhere" }
    });

它不是很好,但我真的可以找到任何其他方式,我没有看到任何新版本即将推出8 ^)

答案 3 :(得分:1)

你应该在这里试试:

http://bargaorobalo.net/blog/flexigrid-passar-parametros

它是葡萄牙语,但意味着你将附加参数传递给json:

useRp   : true,
rp  : 10,
params: [{name:'ID', value: 100}]

并在json中设置变量RECEIVE:

$query     = isset($_POST['query'])     ? $_POST['query']    : false;
$qtype     = isset($_POST['qtype'])     ? $_POST['qtype']    : false;
$id = isset($_POST['ID']) ? $_POST['ID'] : NULL;

现在,您只需在SQL CODE中使用此参数:

$sql = "SELECT * FROM PROCEDURE_NAME(".$id.") $where $sort $limit";
$result = runSQL($sql);

答案 4 :(得分:0)

如果您尝试在某些单击事件中加载特定值的flexigrid数据。试试这个          我们可以像

一样使用查询字符串
 var val1=value;
    url: '/services/MHService.asmx/GetSurgicalHistory?qurid='+val1,

到webservice方法并使用字符串

从webservice获取

getvalue=HttpContext.Current.Request.QueryString["qurid"].ToString();

答案 5 :(得分:0)

初始化flexigrid时,可以在onSubmit事件中使用flexOptions,如下所示:

...
title: 'Surigcal History',
onSubmit: function() {  
  $('#flex1').flexOptions({newp:1,params:[{name: 'id', value: '23'}]});
  $('#flex1').flexOptions({newp:1,params:[{name: 'area', value: 'anywhere'}]});
},
useRp: true,
...

最好为多个参数使用循环

这可以避免直接修改flexigrid.js