2013-04-26 70 views
4

我有一個主/子網格結構,像這樣的條件表達式:劍道網格DetailTemplate,訪問子網格值

父網格:

@(Html.Kendo().Grid<ElementViewModel>() 
    .Name("gridEle") 
    .Columns(cols => 
    { 
     cols.Bound(e => e.EleNum) 
    }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Read(read => read.Action("GetElements", "Rating", pi)) 
    ) 
    .ClientDetailTemplateId("tempSubEle")   
) 

兒童網格作爲DetailTemplate:

<script id="tempSubEle" type="text/kendo-tmpl"> 

    @(Html.Kendo().Grid<SubElementViewModel>() 
     .Name("gridSubEle_#=EleID#") 
     .Columns(cols => 
     { 
      cols.Bound(e => e.Rating)  
       .ClientTemplate("<input type='checkbox' value='1' " + 
           "#if(Rating==1){#checked='checked'#}# />"); 
     }) 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .Read(read => read.Action("GetSubElementsByElementID", "Rating", new {eID = "#=EleID#" })) 
     ) 
     .ToClientTemplate() 
    ) 
</script> 

問題:

我在ClientTemplate列中有一個#if {#...#}#語句,但是評級值來自父級網格而不是當前的子網格(父網格發生有一列也被命名爲「評級」),以證明它來自父級網格,如果我將「評級」更改爲只存在於子網格中的列,即SubEleID,則會在瀏覽器中發出錯誤,表示未找到SubEleID。

問題:

那麼,什麼是支撐評級的語法獲取子網格值? 只是爲了嘗試,我甚至嘗試過:data.Rating或$(this).Rating,都沒有工作。

請指教, 謝謝

回答

7

#在一些劍道模板用於parent屬性(如您使用的名稱:gridSubEle_#=EleID#,但對於一些子屬性,你必須逃離#\\

  cols.Bound(e => e.Rating)  
      .ClientTemplate("<input type='checkbox' value='1' " + 
          "\\#if(Rating==1){\\#checked='checked'\\#}\\# />"); 
+0

謝謝,作品;-) – smeagull 2013-04-26 14:32:25

+1

優秀的塞繆爾,你救了我的時間! – ravisolanki07 2013-07-23 10:27:59