Как вы передаете параметры в asmx, используя Flexigrid? - PullRequest
3 голосов
/ 24 июля 2010

вот мой код:

$('#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
        });

Теперь этот код работает, как передать параметры в веб-сервис? я попытался найти параметр «data» в API Flexigrid, но, похоже, его нет.

как то так:

            method: 'POST',
            url: '/services/MHService.asmx/GetSurgicalHistory',
            dataType: 'xml',
            data: '{ id: 23, area: "anywhere" }',

Ответы [ 6 ]

4 голосов
/ 19 сентября 2011

Изменить:

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();
3 голосов
/ 09 декабря 2010

Дополнительные параметры могут быть указаны с помощью параметра params :.Если вы посмотрите на строку 615-618 в файле flexigrid.js, вы увидите, где код перебирает каждый элемент в p.params и добавляет его в список по умолчанию (page, rp, sortname и т. Д.).

2 голосов
/ 06 августа 2010

что я в итоге сделал это в строке 713 из flexigrid.js я добавляю это

            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 ^)

1 голос
/ 28 марта 2012

Вы должны попробовать это здесь:

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

Это на португальском языке, но означает, что вы передаете дополнительные параметры к json:

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

и ПОЛУЧИТЕ вПеременная json:

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

Теперь вы просто используете этот параметр в своем КОДЕ SQL:

$sql = "SELECT * FROM PROCEDURE_NAME(".$id.") $where $sort $limit";
$result = runSQL($sql);
0 голосов
/ 19 февраля 2013

При инициализации flexigrid вы можете использовать flexOptions в событии onSubmit, например:

...
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

0 голосов
/ 29 декабря 2011

, если вы пытаетесь загрузить данные flexigrid для определенного значения в каком-либо клике Event.попробуйте это, мы можем использовать строку запроса как

 var val1=value;
    url: '/services/MHService.asmx/GetSurgicalHistory?qurid='+val1,

для метода веб-сервиса и получить из веб-сервиса, используя строку

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

...