2009-09-11 7 views
7

Mes colonnes apparaissent, il génère une ancre pour mon lien. Le seul problème est l'URL est mal formé pour MVCObtenir le formateur JQGrid: 'showlink' pour travailler dans MVC

Voici le colModel:

   colModel: [ 

        { name: 'RegName', index: 'RegName', label: 'Region Name',width:90, align: 'center' }, 
        { name: 'AccessNbr', index: 'AccessNbr', label: 'Access Number',width:80, align: 'center', formatter: 'showlink', formatoptions: {baseLinkUrl: '', showAction: 'GetBoxesForPorId', addParam: ''} }, 
        { name: 'TransmitedDt', index: 'TransmitedDt', label: 'TransmitedDt', align: 'center' }, 
        { name: 'BoxCount', index: 'BoxCount', label: 'Box Count', align: 'center' }, 
        { name: 'PorId', hidden:false ,index: 'PorId', label: 'Por ID', key:true ,formatter:'link', formatoptions: {target:'_new'} }       
       ] 

Voici l'URL qu'il construit: http://localhost:4618/Por/GetBoxesForPorId?id=16

L'URL que je veux construire est: http://localhost:4618/Por/GetBoxesForPorId/16

+0

possible dupliquer de http://stackoverflow.com/questions/1170510/asp-net-mvc-routing-with-jqgrid – Dan

Répondre

12

Voici votre réponse:

function formateadorLink(cellvalue, options, rowObject) { 

      return "<a href=/Idiomas/Edit/"+ cellvalue + ">" + cellvalue + "</a>"; 
     } 

dans la définition de la grille:

colModel: [ 
         { name: 'id_idioma', index: 'id_idioma', width: 100, align: 'left', 
          formatter: formateadorLink 
         }, 
         { name: 'nombre', index: 'nombre', width: 100, align: 'left' } 
        ], 
+1

Je pourrais prendre votre réponse un peu plus loin en faisant: 'return '/"' + cellValue + '">' + cellValue + '';' –

1

Ceci est la façon dont je l'ai fait:

function LinkFormatter(cellvalue, options, rowObject) { 

      return '<a href= <%= Url.Content("~/") %>' + cellvalue + ">Edit</a>"; 
     } 

Col Modèle

colModel: [ 
        { name: 'Id', index: 'Id', width: 50, align: 'left', hidden: true }, 
        { name: 'Edit', index: 'Edit', width: 50, align: 'left', formatter: LinkFormatter }, 
        { name: 'AgentName', index: 'AgentName', width: 250, align: 'left' }, 
        { name: 'AgentType', index: 'AgentType', width: 250, align: 'left' }, 
       ], 

Dans le côté serveur

var jsonData = new 
    { 
     total = 1, 
     page = 1, 
     records = agents.Count(), 
     rows = (
       from row in agents 
       select new 
       { 
        i = row.Id, 
        cell = new[] { 


         row.Id.ToString(), 
         "Controller/Action/" + row.Id.ToString(), 
         row.Name, 
         row.Type 
        } 
       }).ToArray() 

    }; 
Questions connexes