0

我有几个用于搜索的控件的视图。当用户从这些中搜索(Ajax.BeginForm)时,我将数据返回到动态生成的 PartialView(Telerik MVC3 Grid)中。

这一切都很好。网格中有用于选择行的按钮。当我选择一行时,它会发布到我的控制器,我会做一些“事情”等。当我尝试返回视图时,我得到的只是页面上的网格数据,它显示为没有边框的表格,没有其他控件等。我的代码如下。

我的部分网格:

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

我的控制器:

[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);
}

如您所见,我尝试了各种方法都没有成功。

谁能给我一些指导。

谢谢你的时间。

4

1 回答 1

0

据我了解,您正在使用dataBinding.Server()该调用服务器端绑定。使用.Editable(editing => editing.Mode(GridEditMode.InLine)它会起作用。

两种绑定(服务器和 Ajax)都需要编辑模式。设置编辑模式并重试。如果它不适合您,请回复。这里是数据绑定的完整代码:

  **.DataBinding(dataBinding => dataBinding.Ajax()
                                        .Select("myAction", "myController")
                                        .Update("myAction",myController")).
  Editable(editing => editing.Mode(GridEditMode.InLine))**
于 2012-05-22T13:22:01.873 回答