8 messaggi dal 04 maggio 2004
Salve!

ho due brevi domande sull'utilizzo di una datagrid.
La query che estrapola gli elementi e li inserisce nella datagrid viene generata con due parametri presi da due due oggetti calendar che selezionano l'intervallo di tempo, e fin qui tutto bene, questo però avviene solo dopo che si clicca sulle due date... sarebbe possibile far aprire di default in automatico la data del giornio su entrambi i controlli quando carico la pagina e far partire direttamente la datagrid?

Il secondo problema riguarda un campo bit che viene stampato come true/false nella datagrid, come faccio a sostituire quel valore riominandolo aperto/chiuso ?

<asp:BoundField DataField="Pagata_SCF" HeaderText="Chiusa" SortExpression="Pagata_SCF" >
<ItemStyle HorizontalAlign="Left"/>
</asp:BoundField>

Grazie per la pazienza

Riccardo Tacchi
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

1. Nel page_load al primo accesso valorizzi gli oggeti calendar con le date che vuoi e chiami ilmetodo di databinding.

2. gestisci l'evento rowdatabound e li ti recuperi l'istanza della cella di cui devi modificare il testo e ci metti il valore che vuoi.
HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
637 messaggi dal 12 agosto 2005
Una precisazione: lei ha parlato di DataGrid, controllo "vecchio" in ASP.NET 2.0, ma poi ha postato del codice relativo alla GridView, cosa molto diversa.

Detto questo, per il primo problema, basta che nel Page_Load invochi il metodo DataBind della Griglia.

protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
            GridView1.DataBind();
    }


Per il secondo problema, è meglio usare un TemplateField, ciò un campo personalizzato:

<asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Literal ID="litApertoChiuso" runat="server"
                            Text='<%# Convert.ToBoolean(Eval("campobit")) ? "Aperto" : "Chiuso" %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>


Questo esempio sfrutta l'operatore ternario di C#, ma è anche possibile creare una funzione lato server che accetta l'Eval e restituisce il valore a seconda dei casi.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.