2010-07-24 2 views
3

voici mon code:comment passez-vous les paramètres dans asmx en utilisant Flexigrid?

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

Maintenant, ce code fonctionne, comment puis-je passer des paramètres dans le webservice? J'ai essayé de chercher le paramètre 'data' dans l'API de Flexigrid, mais il semble n'y en avoir aucun.

quelque chose comme ceci:

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

Répondre

2

ce que je fini par faire était ce sur la ligne 713 de flexigrid.js i ajouter cette

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

alors que je pouvais faire quelque chose comme ça

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

ce n'est pas génial mais je pourrais vraiment trouver un autre moyen et je ne vois pas de nouveau ver sions qui sortent bientôt 8 ^)

+0

vers le bas voté? soin d'expliquer pourquoi? c'est la réponse acceptée depuis presque 2 ans – mcgrailm

3

Des paramètres supplémentaires peuvent être spécifiés en utilisant l'option params:. Si vous regardez la ligne 615-618 dans flexigrid.js, vous pouvez voir où le code boucle chaque élément dans p.params, et l'ajoute à la liste par défaut (page, rp, sortname, etc).

4

Change:

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

à:

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

Ou si vous voulez recharger avec de nouvelles options:

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

si vous essayez de charger des données Flexigrid pour une valeur particulière dans certains cliquez sur l'événement.essayez ce nous pouvons utiliser la chaîne de requête comme un

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

à la méthode webservice et obtenir de chaîne à l'aide webservice

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

1

Vous devriez essayer ici:

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

Son en portugais, mais signifie que vous PASS paramètres supplémentaires à json:

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

et RECEVOIR dans la variable de réglage de JSON:

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

Maintenant, vous utilisez simplement ce paramètre dans votre SQL CODE:

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

Vous pouvez utiliser les FlexOptions en cas onSubmit lorsque initialisant flexigrid, comme ceci:

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

mieux utiliser une boucle pour plusieurs paramètres

Cela évite de modifier les flexigrid.js directement

Questions connexes