domenica 24 maggio 2015

Ext.Net GridPanel column Combobox view text

Nel caso che vogliamo visualizzare una combobox in un controllo GridPanel di Ext.Net dopo aver convalidato il dato nella fase editing, può capitare che nella griglia viene visualizzato il valore relativo alla proprietà valueField anzichè quello relativo alla proprietà DisplayField.

Per risolvere tale problema, dobbiamo utilizzare il tag Render nella colonna di nostro interesse e tramite l'attributo fn indicare una funzione che ritorna il valore che vogliamo.

Qui di seguito un frammento di codice di tale soluzione.


Funzione Javascript


var VisualizzaTesto = function (value) {
            var r = Store1.getById(value);
            if (value == "A") {
                return "Testo A";
            }
            else if (value == "B") {
                return "Testo B";
            }
            else if (value == "C") {
                return "Testo C";
            }
            else {
                return "";
            }

        };


HTML

<

ext:Column ColumnID="CAMPODB" Header="Testo" Width="80" DataIndex="CAMPODB">
renderer fn="VisualizzaTesto" > /renderer>
editor> /editor>
ext:combobox displayfield="Descrizione" id="cmb1" nbsp="" runat="server" valuefield="Valore" > /ext:combobox>
ext:store id="Store1" runat="server"
reader> /reader>
ext:jsonreader idproperty="IdSpazio">
fields> /fields>
ext:recordfield mapping="Valore" name="Valore" /ext:recordfield>
ext:recordfield mapping="Descrizione" name="Descrizione"> /ext:recordfield>
                                                                                                       
                                                                                                   
                                                                                               
                                                                                           
                                                                                       
                                                                                                                                                                           
                                                                                   
                                                                               
                                                                           




Nessun commento: