Отображение изображения / значка внутри ячейки EXT.NET GridPanel, от которой зависит значение - PullRequest
2 голосов
/ 03 февраля 2012

Приветствие,

Мне нужно отобразить изображение / значок И значение в ячейке EXT.NET (на сетке).Значение исходит из данных.Значение может быть строкой «хорошо» или «плохо» и находится в столбце «Состояние».

Например: хороший accept.png или плохой 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>

Теперь я видел некоторые примеры, но не могу получитькартина, я думаю, это как-то связано с этим:

<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/

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Я забыл вернуть значение.

<ext:Column ColumnID="columnStatus" DataIndex="omschrijving" Header="Status" Width="150">
                <Renderer Handler="return imgRenderer(value);" />
</ext:Column>
0 голосов
/ 18 сентября 2012

c #:

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

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

модель:

<ext:ModelField Name="Icon"  />

столбец:

<ext:TemplateColumn ID="myIcon"  runat="server"  Text="myIcon"  DataIndex="Icon" Width="35" TemplateString='<img style="width:20px;height:20px;" src="{Icon}" />' />
0 голосов
/ 03 февраля 2012

У вас есть варианты, хотя я думаю, что есть только одна незначительная синтаксическая ошибка, которая вызывает проблему.

Вариант 1:

В вашем существующем коде вы должны изменить data на value.

Пример

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

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

Вариант 2:

Переименуйте ваши изображения в то же значение, что и значение, хотя для этого все равно потребуется использовать атрибут value вместо data. Переименуйте accept.png в good.png, и то же самое переименование с «плохим» изображением. С этим изменением вам не требуется оператор if | else.

* ** 1 022 тысяча двадцать-один * Пример
// existing
if(data == ‘good’)
{
    return "<img src='accept.png'/>"
}
else (data == "bad") 
{
    return "<img src='cancel.png'/>"
}

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

Надеюсь, это поможет.

...