Tôi có lưới phân cấp hai lớp mà tôi đang chuyển từ liên kết phía máy chủ sang sử dụng ajax. Ajax đọc cho cả hai lớp dữ liệu đang hoạt động chính xác tuy nhiên tôi gặp khó khăn khi sử dụng ClientTemplate để hiển thị các cột của tôi dựa trên logic điều kiện.Làm thế nào để sử dụng biểu thức mẫu khách hàng trong ràng buộc ajax của lưới kìm kìm?
Dưới đây là phiên bản ràng buộc phía máy chủ. Tôi hiểu rằng tôi phải sử dụng ClientTemplate và các biểu thứC# = # cho cùng một hiệu ứng nhưng tôi đang gặp hai vấn đề:
- Làm thế nào để tăng biến 'i' cho mỗi hàng để tôi có thể sử dụng CheckBoxFor và giống như phương pháp trợ giúp html?
- Cách chuyển đổi @ để sử dụng biểu thức ClientTemplate. Lưu ý logic điều kiện sử dụng các thuộc tính của Mô hình Xem và các thuộc tính của phần tử được liên kết (MyViewModel) với logic điều kiện bằng cách sử dụng hỗn hợp các thuộc tính từ Mô hình
Chuyển đổi thành một biểu thức sẽ hữu ích nhất.
var i = -1;
@(Html.Kendo().Grid<MyViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Selected).Title("")
.Template(
@<text>
@{i++;}
@if (Model.Permissions.HasInsertAccess && item.Status == Status.Created)
{
<input type="hidden" name="MyViewModels.Index" value="@i" />
@Html.CheckBoxFor(m => m.MyViewModels[i].Selected)
}
</text>);
columns.Bound(c => c.Id)
.Template(@<text>@Html.HiddenFor(m => m.MyViewModels[i].Id)@item.Id</text>)
Cảm ơn, hoạt động tốt. Thay vì sử dụng gia số hàng, tôi quyết định sử dụng uid được tạo bởi lưới kendo. Đó là một sự xấu hổ mẫu khách hàng không hoạt động tốt với các lớp html mvc như bây giờ tôi phải viết tay html xấu xí. Bạn có biết nếu nó có thể kết hợp serverside với ràng buộc ajax? Lưới đầu tiên từ Model và sau đó khi bạn mở rộng hàng để thực hiện cuộc gọi ajax? Tôi đã thử rất nhiều cách để không có kết quả. – David