2013-04-16 138 views
3

我有一個kendo ui網格,我想綁定圖像。這裏是我的代碼:定義kendo ui網格列的自定義模板

@model List<NewHope.Model.Mt4_prices_instant> 

<div class="tabContainer"> 
@(Html.Kendo().TabStrip() 
      .Name("tabstripMarketWatch") 
      .Items(tabstrip => 
      { 
       tabstrip.Add().Text("Market Rates") 
        .Selected(true) 
        .Content(
         @<text> 
          @if (Model != null) 
          { 
           @(Html.Kendo().Grid(Model)  
            .Name("Grid") 
            .Columns(columns => 
            { 
             columns.Template(
              @<text> 
               @if (item.direction == 1) 
               { 
                <img src="~/Images/up.png" alt="up"/> 
               } 
               else if (item.direction == 0) 
               { 
                <img src="~/Images/down.png" alt="down"/> 
               } 
              </text>).Title(""); 
             columns.Bound(p => p.symbol); 
             columns.Bound(p => p.bid); 
             columns.Bound(p => p.ask); 
            }) 
            //.Groupable() 
            //.Pageable() 
            .Sortable() 
            .Scrollable() 
            //.Filterable() 
            .DataSource(dataSource => dataSource 
             .Ajax() 
             .Read(read => read.Action("Products_Read", "MarketWatch")) 
            ) 
           )  
          } 
         </text> 
       ); 

       tabstrip.Add().Text("Cubes") 
        .Content(@<text> 
        <div class="weather"> 
         <h2>18<span>&ordm;C</span></h2> 
         <p>Cubes</p> 
        </div> 
        <span class="rainy">&nbsp;</span> 
        </text>); 
      }) 
    ) 
</div> 
<style> 
#tabstripMarketWatch-1, #tabstripMarketWatch-2 { /* tabstrip element */ 
    position: absolute; 
    top: 41px; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    width: auto; 
    height: auto; 
} 

#Grid { 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    width: 100%; 
    height: 100%; 
} 

對於以下部分:

columns.Template(
    @<text> 
     @if (item.direction == 1) 
     { 
      <img src="~/Images/up.png" alt="up"/> 
     } 
     else if (item.direction == 0) 
     { 
      <img src="~/Images/down.png" alt="down"/> 
     } 
    </text>).Title(""); 

我得到「行內標記塊不能嵌套內標記的只有一個級別是允許的。 「錯誤。

我有什麼做的,成功地使我的網格?

由於提前,

+2

看到這個職位:http://stackoverflow.com/questions/10684025/inline-markup-blocks-cannot-be-nested-only-one-level-of-inline-markup-is-allowe –

回答

5
columns.Bound(p => p.bid).ClientTemplate("<# if(direction == 1) {#>" + 
       "<img src='~/Images/up.png' alt='up'/>" + 
       "<#} else if(direction == 0) {#>" + 
       "<img src='~/Images/down.png' alt='down'/>" + 
       "<#}#>")    
       .Title("End").Width(80); 
+0

如果您的模板中有很多條件,最好將正在測試的值傳遞給函數。 'columns.Bound(p值=> p.bid).ClientTemplate( 「#=的getImage(方向)#」) ...更多代碼... <腳本類型= 「文本/ JavaScript的」> 功能的getImage(方向){ 如果(方向== 1){ 返回 「up」; } 否則,如果(方向== 0){ 回報 「down」 } 否則,如果(<一些其他條件){}} ' – Pauline

+1

誰能推薦的東西,我可以看明白這一切是如何語法合在一起。我正在努力去真正理解。謝謝 – Dave

1

這是因爲剃刀看到多個模板模塊,它認爲這對標籤欄:

.Content(
    @<text> 
     @if (Model != null) 
     { .. 

和電網:

columns.Template(
    @<text> 
     @if (item.direction == 1) 
     { 

和銳利不像那樣。嘗試@Samuel鏈接到的方法,即使用幫助器方法呈現網格,然後在tabstrip中調用該幫助器。