2013-03-14 2 views
1

je dois charger des colonnes à jqGrid et Dynamiquement essaie de suivre jqGrid and dynamic column bindingcolonnes de chargement dynamique pour jqGrid à l'aide AjaxCall

essaie dans MVC. pour le nom de la colonne am extraction à partir de la table (qui a une liste de colonnes à afficher dans GRID) et en retournant les données Json qui est simple.

Comment puis-je implémenter pour ColModel? Ex: je dois envoyer objet JSON comme cette dynamique

 {name: 'Airport', formatter: UrlFmatter, width: 95, align: "center", index: 'AIRPORT', searchoptions: { sopt: ['eq', 'ne', 'cn']} } 
    {name: 'Country', width: 100, align: "center", index: 'Country', searchoptions: { sopt: ['eq', 'ne', 'cn']} } 

Comment ma conception devrait être d'envoyer JSON pour régler le colModel?

Mon code UrlFmatter

function UrlFmatter(cellvalue, options, rowObject) { 
        return "<a href='DetailResult?airportname=" + options.rowId + "' >" + cellvalue + "</a>"; 
       } 

Comment puis-je écrire selon votre réponse pour le formatage et unformatting? Merci

+0

avez-vous besoin de changer l'état de la grille ou avant? –

+0

J'ai besoin d'envoyer des données à DB et de les assigner à COlModel – user2067567

Répondre

1

Je suppose que vous avez le problème avec l'envoi d'informations sur le formateur (formatter: UrlFmatter) dans JSON. Les chaînes JSON ne prennent pas en charge les fonctions en tant que type de données. Le moyen le plus simple de résoudre le problème semble être d'enregistrer votre formateur de la même manière que les formateurs standard. Par exemple, vous voulez que votre nom formatter ont "myUrlFormatter" vous pouvez utiliser la

suivante
(function ($) { 
    'use strict'; 
    /*jslint unparam: true */ 
    $.extend($.fn.fmatter, { 
     myUrlFormatter: function (cellValue, options) { 
      // you should place here the code of 
      // your custom formatter UrlFmatter 
     } 
    }); 
    $.extend($.fn.fmatter.myUrlFormatter, { 
     unformat: function (cellValue, options, elem) { 
      // you should place here the code of 
      // your custom unformatter 
     } 
    }); 
}(jQuery)); 

Vous devez inclure le code aprèsjquery.jqGrid.min.js (ou après jquery.jqGrid.src.js). Après cet enregistrement de la formatter vous pouvez l'utiliser dans colModel comme

{name: "Airport", index: "AIRPORT", formatter: "myUrlFormatter", width: 95, 
    align: "center", searchoptions: { sopt: ["eq", "ne", "cn"]} } 

Ainsi, la valeur de la propriété formatter sera chaîne (formatter: "myUrlFormatter") au lieu de la fonction (formatter: UrlFmatter).