2012-07-04 2 views
10

Ich versuche, den neuen Kendo UI Raster von asp.net MVC 3.emTelerik Kendo ui grid Anzeigen von HTML-Zelle anstelle der erzeugten HTML-Steuer

I mit der Tabelle aus einem automatisch eine Tabelle zu verwenden, am Controller erzeugt wird, in asp.net mvc 3.

Und zeigen Sie es mit Kendo.ui Raster.

Allerdings habe ich den HTML-Code habe innerhalb der Zellen anstelle der HTML-Steuerelemente

Beispiel:

es in der Zelle angezeigt werden: <input checked="checked" class="check-box" disabled="disabled" type="checkb.. anstelle einem Eingang, der Code in der Ansicht ist @ html.input

oder <a href="/Admin/Edit">Edit</a> | <a href="/Admin/Details">Details</a> | <a href="/Adm anstelle eines Link (Code in der Ansicht ist @ Html.ActionLink)

Wie kann ich es hTML-Code codieren machen?

Das ist mein Skript:

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

    }); 
}); 

Dank

+0

Können Sie den Javascript-Code schreiben, wo Sie die kendoUI erstellen Gitter? – nemesv

+0

Das ist mein Skript: $ (Dokument) .ready (function() { $ ("# calendrierMatch"). KendoGrid ({ } }); }); – dtjmsy

Antwort

26

Die KendoUI Grid automatisch den Inhalt des Rasters codiert, das ist, warum Sie den Text <input type= ... statt der tatsächlichen Eingangskontrolle zu bekommen.

Sie können mit Verwendung der encoded Optionen (see documentation) die Codierung für eine bestimmte Spalte deaktivieren:

codiert: Boolean (default: true) angegeben, ob der Spalteninhalt entkommen ist. Deaktivieren Sie die Codierung, wenn die Daten HTML-Markup enthalten.

Sie müssen also so etwas wie:

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

Hi nemesv, danke für deinen Rat, ich benutze $ ("# grid"). KendoGrid() um mein Grid zu erstellen, werden die Spalten und Daten direkt aus der Tabelle der View (mit und ) abgerufen Um die Option encoded: false zu verwenden, bedeutet das, dass ich jedes Mal alle Spalten für die Tabelle im KendoGrid-Aufruf deklarieren muss? – dtjmsy

+0

Basierend auf der Dokumentation in der aktuellen Version gibt es keine andere Möglichkeit, die Codierung global zu deaktivieren. Also ich fürchte, Sie müssen alle Spalten angeben, und deaktivieren Sie die Codierung individuell ... – nemesv

+0

Ich habe die neueste Beta-Version ausprobiert, und ich kann jetzt die HTML gerendert bekommen, kann jedoch nicht die Spalten sortieren, auch mit der sortierbar: wahre Option, kann ich die Symbole nach oben/unten sehen, aber wenn Sie Ergebnisse nichts klicken, haben Sie etwas Ähnliches gesehen? – 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

in Modellgitter Kendo Bindung Razor HTML-Seite diesen Code verwenden

@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>); 
})