Telerik MVC3 Razor Grid: vista parcial que regresa del controlador

Tengo una vista con varios controles que se utilizan para buscar. Cuando un usuario busca (Ajax.BeginForm) fuera de estos, devuelvo los datos a PartialView (Telerik MVC3 Grid) que se generó dinámicamente.

Todo esto funciona bien. En la cuadrícula hay botones para seleccionar una fila. Cuando selecciono una fila, se publica en mi controlador, hago algunas "cosas", etc. Cuando trato de volver a la vista, todo lo que obtengo son mis datos de cuadrícula en una página sola, se muestra como una tabla sin bordes. , no hay otros controles, etc. Mi código está debajo.

Mi grilla parcial:

@model Highlander.Areas.Highlander.Models.ViewModels.DeliveriesGridViewModel
@using System.Data;

@(Html.Telerik().Grid<System.Data.DataRow>(Model.Data.Rows.Cast<System.Data.DataRow>())
.Name("Grid")
.DataKeys(dataKeys => dataKeys.Add("DeliveryID"))
.Columns(columns =>
{
    columns.Command(commandbutton =>
        {
            commandbutton.Select().ButtonType(GridButtonType.ImageAndText);
        }).Width(80).Title(ViewBag.Title);
    columns.LoadSettings(Model.Columns as IEnumerable<GridColumnSettings>);
})
    .DataBinding(dataBinding => dataBinding.Server().Select("_MarkSystem", "Deliveries"))
.EnableCustomBinding(true)
.Resizable(resize => resize.Columns(true))
)

Mi controlador:

[GridAction]
public ActionResult _MarkSystem(GridCommand command, int id)
{
    string shipDeliver = DataCache.ShipDeliver;
    DataTable fullTable = DataCache.FullTable;

    // call to function to get the datatable data based on the id
    rHelpers.GetDataTableRow(id, fullTable, shipDeliver);

    // get the data for the grid into the model
    fullTable = DataCache.FullTable;
    model = new DeliveriesGridViewModel();
    model.Data = fullTable;
    model.Columns = rHelpers.NewColumns(DataCache.FullTable);

    return PartialView("_DeliveryGrid", model);

    //if (Request.IsAjaxRequest())
    //{
    //    return PartialView("_DeliveryGrid", model);
    //}
    //return PartialView("_DeliveryGrid", model);
    //return PartialView("DeliveryManager", model);
}

Como puedes ver, he intentado varias cosas sin éxito.

¿Alguien puede darme alguna dirección sobre esto?

Gracias por su tiempo.

preguntado el 03 de mayo de 12 a las 19:05

1 Respuestas

Hasta donde entiendo que estás usando dataBinding.Server() que llaman a un enlace del lado del servidor. Usar .Editable(editing => editing.Mode(GridEditMode.InLine) funcionará.

Ambos tipos de enlaces (Servidor y Ajax) necesitan un modo de edición. Ponga un modo de edición e intente nuevamente. Responda amablemente si no funciona para usted. Aquí el código completo de enlace de datos:

  **.DataBinding(dataBinding => dataBinding.Ajax()
                                        .Select("myAction", "myController")
                                        .Update("myAction",myController")).
  Editable(editing => editing.Mode(GridEditMode.InLine))**

contestado el 22 de mayo de 12 a las 20:05

Probé lo que me sugeriste y obtengo los mismos resultados. No estoy seguro de entender el razonamiento detrás del código que me diste. No estoy tratando de editar los datos. Publico la fila de datos que selecciono, hago algunos cálculos con los datos de la fila y luego los elimino de la cuadrícula. Simplemente no puedo hacer que vuelva a mi vista y muestre la página completa correctamente. Todo lo que muestra es mi cuadrícula, parece una tabla sin bordes. Esta es mi primera aplicación MVC3, así que tal vez no entiendo completamente lo que dices. Gracias por su tiempo y espero sus pensamientos. - Chillido

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.