0

我有一個父級層次結構網格,每個父級行都有一個子表。我在子錶行中有一個自定義命令按鈕,並且當我按下該按鈕時想要訪問父行ID。這裏是我的代碼:Kendo ASP.Net MVC Datagrid如何獲得子行中的父行ID

父表:

@(Html.Kendo().Grid<FsERP.Models.ParentModel>() 
      .Name("gridParent") 
      .Columns(columns => 
      { 
       columns.Bound(p => p.ID).Hidden(true); 
       columns.Bound(p => p.P_Column1).Width(180); 
       columns.Bound(p => p.P_Column2).Width(180); 
      }) 
      .DataSource(dataSource => dataSource 
      .Ajax() 
      .Batch(true) 
      .ServerOperation(false) 
      .Model(model => 
      { 
       model.Id(p => p.ID); 
       model.Field(p => p.ID).Editable(false);); 
      }) 
      .PageSize(20) 
      .Read(read => read.Action("EditingCustom_Read", "Parent")) 
     ).ClientDetailTemplateId("childsTemplate") 

子表模板:

 <script type="text/kendo" id="childsTemplate"> 

      @(Html.Kendo().Grid<FsERP.Models.ChildModel>() 
         .Name("gridChild") 
         .Events(e => e.DataBound("OnDataBound").Edit("OnEdit")) 
         .Columns(columns => 
         { 
          columns.Bound(c => c.ID).Hidden(true); 
          columns.Bound(c => c.C_Column1).Width(180); 
          columns.Bound(c => c.C_Column2).Width(130); 
          columns.Command(command =>command.Custom("GetParentID").Click("showParentID")).Width(80); 
    }).DataSource(dataSource => dataSource 
      .Ajax() 
      .Batch(true) 
      .ServerOperation(false) 
      .Model(model => 
      { 
       model.Id(p => p.ID); 
       model.Field(p => p.ID).Editable(false);); 
      }) 
      .PageSize(20) 
      .Read(read => read.Action("EditingCustom_Read", "Child")) 
     ).ToClientTemplate() 
) 

      </script> 

下面是我的javascript點擊方法:

function showParentID(e) { 

} 

我怎麼會提醒家長這個showParentID()方法中的ID。任何幫助將是可觀的。

謝謝。

注意

我不想送的parentID在JavaScript方法的參數,因爲我還需要訪問該事件的信息。

回答

1

您可以添加父ID字段到您的自定義命令的名字是這樣的:

columns.Command(command => command.Custom("GetParentID_#=ID#") 

然後你showParentID函數中檢索已被觸發,下劃線或任何你拆分後的ID按鈕的名稱相當。

無論如何,這是POV,你可以以任何你認爲更好的形式改變這種情況。

這裏主要的提示是讓使用#=ID#這是屬於母公司模型父ID訪問

請讓我知道這是否有助於或不

相關問題