2009-09-11 14 views
7

Mis columnas están apareciendo, está generando un ancla para mi enlace. El único problema es la URL está mal formada para MVCObtención del formateador JQGrid: 'showlink' para que funcione en MVC

Aquí está el 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'} }       
       ] 

Aquí es la URL que se construye: http://localhost:4618/Por/GetBoxesForPorId?id=16

La url quiero que construir es: http://localhost:4618/Por/GetBoxesForPorId/16

+0

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

Respuesta

12

Aquí está la respuesta:

function formateadorLink(cellvalue, options, rowObject) { 

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

en la definición de la retícula:

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

Podría llevar su respuesta un paso más adelante al hacer: 'return '/"' + cellValue + '">' + cellValue + '';' –

1

Ésta es la manera que lo hice:

function LinkFormatter(cellvalue, options, rowObject) { 

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

Col Modelo

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' }, 
       ], 

En el lado del servidor

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

    }; 
Cuestiones relacionadas