2012-07-19 66 views
0

是否可以同時使用Template和ClientTemplate?Telerik MVC3 Grid - 是否可以同時使用Template和ClientTemplate?

我想在模板中做一個布爾檢查,但不知道如何在沒有綁定時將它傳遞給ClientTemplate中的複選框。

@(Html.Telerik().Grid(Model.Item) 
    .Name("Grid") 
    .Columns(column => 
     column.Template(x => x.ItemId.Equals(Model.Id)) 
      .ClientTemplate("<input type='checkbox' checked='<#=????? #>' disabled />"); 
    }) 

也許還有另一種方法來實現這一目標?

回答

1

對於這種特殊情況,您不必使用Template。您可以使用嵌入的數據綁定功能ClientTemplate的(如由丹尼爾提到的)來實現你想要什麼,

@(Html.Telerik().Grid(Model.Item) 
    .Name("Grid") 
    .Columns(column => 
    column.ClientTemplate("<input type='checkbox' checked='<#=ItemId == " + Model.Id + "#>' disabled />"); 
}) 

這樣你傳遞的變量Model.Id從服務器,而實際的比較是在向下使用Javascript客戶端。

1

模板用於服務器綁定,而ClientTemplate用於ajax或Web服務綁定。如果您使用服務器綁定,則不使用ClientTemplate。如果您使用的是ajax綁定,則不使用模板。使用ClientTemplate,您可以使用<#=#>以與服務器端模板類似的方式嵌入數據綁定表達式。

.ClientTemplate("<input type='checkbox' checked='<#= (ItemID == Id) #>' disabled />") 

你在一個條件中放置的是有限的。我已經能夠成功地使用bool和int比較,但沒有字符串比較。

+0

但是,在這種情況下'Id'不是'Model.Item'的一個屬性,所以它在客戶端不可用。 – rae1 2013-01-16 15:11:09

相關問題