2012-02-03 50 views
2

问候的图像/一个EXT.NET的GridPanel细胞depinding内部图标,显示上值

我需要显示的图像/图标,并在EXT.NET细胞的值(的GridPanel的)。该值来自数据表。该值可以是一个字符串'好'或'坏'并驻留在'状态'列中。

例如:good accept.png或bad cancel.png。

布局:

<ext:GridPanel ID="grid" runat="server"> 
<Store> 
    <ext:Store ID="Store1" runat="server"> 
      <Reader> 
       <ext:ArrayReader> 
        <Fields> 
         <ext:RecordField Name="status" Mapping="Status" /> 
        </Fields> 
       </ext:ArrayReader> 
      </Reader> 
     </ext:Store> 
    </Store> 
<ColumnModel ID="ColumnModel1" runat="server"> 
     <Columns> 
      <ext:Column DataIndex="status" Header="Status" Width="160"> 
      </ext:Column> 
     </Columns> 
</ColumnModel> 
</ext:GridPanel> 

现在,我已经看到了一些exaples,但我似乎无法得到的图片,我认为它是与此:

<script type="text/javascript"> 
    function imgRenderer(value, meta, record, rowIndex, colIndex, store) { 
if(data == ‘good’) 
{ 
return "<img src='accept.png'/>" 
} 
else (data == "bad") 
     { 
      return "<img src='cancel.png'/>" 
     } 
    } 
</script> 

更多信息: http://miamicoder.com/2009/displaying-an-image-inside-an-ext-js-gridpanel-cell-part-2/ http://techmix.net/blog/2010/11/25/add-button-to-extjs-gridpanel-cell-using-renderer/

回答

1

我忘了返回值。

<ext:Column ColumnID="columnStatus" DataIndex="omschrijving" Header="Status" Width="150"> 
       <Renderer Handler="return imgRenderer(value);" /> 
</ext:Column> 
0

你有选择,虽然我THI nk只有一个小的语法错误导致了问题。

选项1:

在现有的代码,你应该改变datavalue

// existing 
if(data == ‘good’) 

// revised 
if(value == ‘good’) 

选项2:

重命名你的图像相同的值值,虽然这仍然需要使用value属性,而不是data。将accept.png重命名为good.png,并使用“坏”图像进行相同的重命名。有了这个改变,你不应该要求if | else语句。

// existing 
if(data == ‘good’) 
{ 
    return "<img src='accept.png'/>" 
} 
else (data == "bad") 
{ 
    return "<img src='cancel.png'/>" 
} 

// revised 
return '<img src="' + value + '.png"/>'; 

希望这有助于。

+0

没有运气,网格现在甚至没有显示数据。任何想法我应该看看? 我已经添加了渲染器处理程序,这是要走的路吗? Danny 2012-02-06 10:05:46

0

C#:

{ 
//.......... 

dt.Tables[0].Rows[i]["Icon"] = "images/myicon.png";; 
//............ 
} 

模型:

<ext:ModelField Name="Icon" /> 

的colu mn:

<ext:TemplateColumn ID="myIcon" runat="server" Text="myIcon" DataIndex="Icon" Width="35" TemplateString='<img style="width:20px;height:20px;" src="{Icon}" />' /> 
+1

这个问题有点旧了,已经被接受了。考虑评论以解释你的答案与现有的答案是不同的和/或更好的。欢迎来到堆栈溢出! – GargantuChet 2012-09-19 01:48:19