2012-07-04 9 views
10

Tôi đang cố gắng sử dụng lưới giao diện người dùng Kendo mới từ asp.net mvc 3.Telerik Kendo ui lưới hiển thị ô html thay vì tạo điều khiển html

Tôi đang có bảng được tạo tự động từ bộ điều khiển trong asp.net mvc 3.

Và hiển thị nó bằng lưới Kendo.ui.

Tuy nhiên, tôi đang gặp mã html bên trong các tế bào thay vì html khiển

Ví dụ:

nó hiển thị trong tế bào: <input checked="checked" class="check-box" disabled="disabled" type="checkb.. thay vì một đầu vào, mã kiểm tra vào View là @ html.input

hoặc <a href="/Admin/Edit">Edit</a> | <a href="/Admin/Details">Details</a> | <a href="/Adm thay vì một liên kết (mã kiểm tra vào View là @ Html.ActionLink)

làm thế nào tôi có thể làm cho nó mã hóa mã html?

Đây là kịch bản của tôi:

$(document).ready(function() { 
    $("#calendrierMatch").kendoGrid({ 

    }); 
}); 

Cảm ơn

+0

Bạn có thể gửi mã Javascript nơi bạn tạo kendoUI lưới? – nemesv

+0

đây là tập lệnh của tôi: $ (tài liệu) .ready (function() { $ ("# calendrierMatch"). KendoGrid ({ }); }); – dtjmsy

Trả lời

26

Các KendoUI Lưới tự động mã hóa các nội dung của lưới điện, đó là lý do tại sao bạn nhận được văn bản <input type= ... thay vì controll đầu vào thực tế.

Bạn có thể vô hiệu hóa mã hóa cho một cột được với việc sử dụng các tùy chọn encoded(see documentation):

mã hóa: Boolean (mặc định: true) rõ liệu các nội dung cột được thoát. Tắt mã hóa nếu dữ liệu chứa đánh dấu HTML.

Vì vậy, bạn cần một cái gì đó như:

$(document).ready(function(){ 
     $("#grid").kendoGrid({ 
     //... 
     columns: [ 
      { 
       field: "Column containing HTML", 
       encoded: false 
      } 
     ]   
     }); 
}); 
+0

Hi nemesv, cảm ơn lời khuyên của bạn, tôi đang sử dụng $ ("# grid"). KendoGrid() để tạo lưới của tôi, các cột và dữ liệu được lấy trực tiếp từ bảng trên màn hình (với và ), theo thứ tự sử dụng tùy chọn mã hóa: false, điều đó có nghĩa là mỗi lần tôi cần khai báo tất cả các cột cho bảng trong cuộc gọi kendoGrid? – dtjmsy

+0

Dựa trên tài liệu trong phiên bản hiện tại, không có cách nào khác để tắt mã hóa toàn cầu. Vì vậy, tôi e rằng bạn cần chỉ định tất cả các cột và tắt mã hóa riêng lẻ ... – nemesv

+0

Tôi đã thử phiên bản beta mới nhất và bây giờ tôi có thể hoàn thành html, không thể phân loại các cột, ngay cả với có thể sắp xếp: tùy chọn đúng, tôi có thể thấy các biểu tượng lên/xuống, nhưng khi nhấp vào kết quả không có gì, bạn có thấy bất cứ điều gì tương tự không? – dtjmsy

0
You need to add the template feature of kendo grid. 

In the below code i have created a text box inside the cell of kendo grid. 


{ 
    field: "Total", 
    title: "Total", 
    width: "40px", 
    template: "<input type='text' class=\"quantity_total\" id='txtTotal_${ItemId}'  
       name='txtTotal_${ItemId}' maxlength='8' onkeypress = 'return 
       fnCheckNumeric_total(event,this.id)' />" 

}, 
1

trong mô hình liên kết lưới kendo Razor Html trang sử dụng mã này

@Html.Kendo().Grid(Model).Name("GridName").Columns(col =>{ 
col.Bound(m => m.ID); 
col.Bound(m => m.Name); 
col.Template(@<text> 
     @Html.Raw(HttpUtility.HtmlDecode(item.Text)) 
    </text>); 
})