2013-08-27 44 views
8
columns.Bound(p => p.Active).ClientTemplate("\\#if('#=Active#'=='Y') {\\<input type='button' value='OK' />\\}\\#").Width(150).Title("Status"); 

nhưng điều kiện được lấy làm chuỗi ??Mẫu khách hàng Kendo Grid có điều kiện

#if('Y'=='Y')`enter code here` { 
<input type="button" value="OK"> 
}# 

Trả lời

21

Có ba cách để sử dụng cú pháp băm trong một mẫu Kendo:

  1. Render giá trị theo nghĩa đen: # = #
  2. Render giá trị HTML enocded: #: #
  3. Execute mã JavaScript tùy ý: # if (...) {# ... #} #

Vì vậy, trong mã của bạn, bạn sẽ phải viết

columns.Bound(p => p.Active).ClientTemplate(
    "#if(Active=='Y') {# 
     <input type="button" value="OK"> 
     #}#").Width(150).Title("Status"); 

Thông báo trong mẫu như thế nào # dấu hiệu tách bên mã từ ngoài mã. Khi bạn đang ở trong mã, bạn không phải sử dụng # lần nữa để truy cập một biến và đó là lý do tại sao Active có thể không có # trước đó.

+0

Bạn có biết cách làm điều đó với mẫu bên ngoài (trong tệp tập lệnh) không? Mẫu của tôi quá phức tạp để đặt nó bên trong clienttemplate ... – Hemadeus

+0

Tôi nghĩ rằng điều này sẽ làm việc ... columns.Bound (p => p.Active) .ClientTemplate ("# myfunc (data) #"); –

+0

Điều này rất hữu ích trong việc nhận các giá trị trống của tôi trong một mẫu được sắp xếp: cảm ơn. – callisto

5

Hãy thử điều này,

columns.Bound(p => p.Active).ClientTemplate(
       "# if (IsServiceExist) { #" + 
        "<input type='button' value='OK' />"+ 
       "# }#").Width(150).Title("Status"); 
+0

Nếu tôi muốn có nhiều điều kiện, điều đó có thể xảy ra như thế nào ?: (IsServiceExist &&! IsEmail). Là cách thích hợp? – Metaphor

+0

@Metaphor Có bạn có thể làm điều này trong ClientTemplate – Jaimin

2

Tôi hy vọng u có được giải pháp ....

columns.Bound(p => p.IsActive).ClientTemplate("\\# if (IsActive != false) { \\#" + "\\<input type=\"checkbox\" id=\"checkBox\" class=\"parentCheckBox\" window-call=\"template\" checked/>\\" + "\\# } else { \\#" + "\\<input type=\"checkbox\" id=\"checkBox\" class=\"parentCheckBox\" window-call=\"template\" />\\" + "#\\ } \\#").Width(10); 
+1

không thể đọc được ... bạn có thể vui lòng cải thiện câu trả lời của bạn không? – agpt

1

Để có giá trị dữ liệu kết xuất trong mẫu Kendo của bạn, bạn có thể sử dụng sau đây như một hướng dẫn:

columns.Template(@<text></text>) 
    .ClientTemplate("#if (Field3 == true) {#" 
    + "<a onclick='jsFoo(#=Id#)' href='\\#'></a> " 
    + "#} #").Width(70).Title("ColA"); 
-1
columns.Bound(searchModel => searchModel.Value).ClientTemplate("#if(Name=='DevboardTask'){# <a href='\\#UpdateStatusWindow' onclick=\"javascript:openflexpmtask('#=Value#');\">#=Value#</a> #} else {# <a\">#=Value#</a> #}#"); 

Điều này có thể giúp ích cho bạn. Đây chỉ là một ví dụ ...