Telerik MVC: как вставить новые данные в подсеть - PullRequest
1 голос
/ 08 декабря 2011

Я пытаюсь вставить сетку в определенный столбец, Но когда я нажимаю кнопку вставки, во вложенной сетке не появляется новая строка.

Моя модель данных такая же, как эта

public class VoCPOI
 {
    public int id { get; set; }
    public string name { get; set; }
    public string no1 { get; set; }
    public string no2 { get; set; }
    public string no3 { get; set; }

    public List<FlowSub> subList { get; set; }
}

public class FlowSub
{        
    public int subid {get; set;}
    public string subname { get; set; }
    public string subno1 { get; set; }
    public string subno2 { get; set; }
    public string subno3 { get; set; }
}

Сетка-код на странице просмотра

<% Html.Telerik().Grid(Model)
.Name("Grid")
.DataKeys(keys =>
{
    keys.Add(p => p.id);
})            
 .ToolBar(commands =>
 {
     commands.Insert().ButtonType(GridButtonType.Image).ImageHtmlAttributes(new { style = "margin-left:0" });
 })
 .DataBinding(dataBinding =>
 {
     dataBinding.Ajax()
         .Select("_SelectAjaxEditing", "Grid")
         .Insert("_InsertAjaxEditing", "Grid")
         .Update("_SaveAjaxEditing", "Grid")
         .Delete("_DeleteAjaxEditing", "Grid");
 })                          
.Columns(columns =>
{
    columns.Command(commands =>
    {
        commands.Edit().ButtonType(GridButtonType.Image);
        commands.Delete().ButtonType(GridButtonType.Image);
    }).Width(90).Title("");
    columns.Bound(o => o.id).Width(30);
    columns.Bound(o => o.name).Width(30).ClientTemplate("<span>txt</span>").Template(o => o.name + "<span style=\"display:none;\">txt</span>");
    columns.Bound(o => o.no1).Width(30).ClientTemplate("<span>chk</span>");
    columns.Bound(o => o.no2).Width(30).ClientTemplate("<span>chk</span>");
    columns.Bound(o => o.no3).Width(30).ClientTemplate("<span>chk</span>");
    columns.Template(o =>
        {                                 
    %>
        <%= Html.Telerik().Grid(o.subList)
           .Name(string.Format("testsub_{0}", o.id))
            .DataKeys(keys =>
            {
                keys.Add(k => k.subid);
            })
            .DataBinding(dataBinding =>
            {
                dataBinding.Server()
                    .Select("_SelectSubAjaxEditing", "Grid")
                    .Insert("_InsertSubAjaxEditing", "Grid")
                    .Update("_SaveSubAjaxEditing", "Grid")
                    .Delete("_DeleteSubAjaxEditing", "Grid");
            })
           .ToolBar(commands =>
           {
               commands.Insert().ButtonType(GridButtonType.Image).ImageHtmlAttributes(new { style = "margin-left:0" });
           })

           .Columns(innercolumns =>
           {
               innercolumns.Command(commands =>
               {
                   commands.Edit().ButtonType(GridButtonType.Image);
                   commands.Delete().ButtonType(GridButtonType.Image);
               }).Width(90).Title("");
               innercolumns.Bound(ct => ct.subid).Width(20);
               innercolumns.Bound(ct => ct.subname).Width(20);
               innercolumns.Bound(ct => ct.subno1).Width(20);
               innercolumns.Bound(ct => ct.subno2).Width(20);
               innercolumns.Bound(ct => ct.subno3).Width(20);
           })
           .Editable(editing => editing.Mode(GridEditMode.InLine))
           .Footer(false)                                      
         %>
    <%})
      .ClientTemplate(
         "<tr><td><input type=\"text\" size=\"5\" /></td><td><input type=\"text\" size=\"5\" /></td><td><input type=\"text\" size=\"5\" /></td><td><input type=\"text\" size=\"5\" /></td><td class=\"t-last\"><input type=\"text\" size=\"5\" /></td></tr>"
      );
})

.Editable(editing => editing.Mode(GridEditMode.InLine))
.Render(); %>
...