DevExpress Tips

Modificata il 02/08/2019 18:06 da Gionata Aladino Canova — Categorizzata come: ASP NET, DevExpress, Programmazione

BootstrapGridView (e non solo)

Se ho i campi A,B,C e visualizzo solo A e C, DEVO togliere dal DataSource, istruzione UPDATE, la parte che aggiorna il B. Oppure gestire via codice il recupero del contenuto di quel campo.

Troppe colonne in una gridview?

 <SettingsAdaptivity AdaptivityMode="HideDataCells"></SettingsAdaptivity>

Ricerca con filtro anche per i vuoti

 <Settings ShowHeaderFilterButton="true" />

Pager con diversi valori e tutti i record

 <PageSizeItemSettings Visible="True" Items="10,20,50,100" ShowAllItem="true" AllItemText="Tutti i record"></PageSizeItemSettings>

Utilissime

Mantenere la posizione sulla pagina dopo un Postback

Aggiungere alle direttive della pagina l'indicazione
 MaintainScrollPositionOnPostback="true" 

Gentelella Alela - aprire una pagina con un pane chiuso per default

Per far aprire una pagina con un pannello chiuso per default:
 <div class="x_content" style="display: none;">
Invece mantenerne lo stato dopo un postback è più complesso, va aggiunto un campo nascosto che mantiene lo stato e tale campo va valorizzato da Javascript.

Gestire valori Null

 int.TryParse(drop.SelectedValue, out a)? a : 0;

AspxGridView: I valori nascosti vanno perduti

Sito DevExpess: *I valori nascosti vanno perduti

I campi che vengono gestiti in inserimento/aggiornamento della grid sono quelli VISIBILI.

Aggiornamento

Se ho i campi A,B,C e visualizzo solo A e C, DEVO togliere dal DataSource, istruzione UPDATE, la parte che aggiorna il B. Oppure gestire via codice il recupero del contenuto di quel campo.

Inserimento nel caso di sottomaschera

Nascondendo il campo padre di una tabella, il relativo valore va gestito a mano nell'Evento RowInserting

Immagine
 protected void ASPxGridViewPagamenti_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)
{
    e.NewValues["IDCliente"] = (sender as ASPxGridView).GetMasterRowKeyValue();
}

Non essendo visualizzata la colonna IDCliente, nonostante che impostiamo il suo valore in InitNewRow, nell'evento RowInserting troveremo il suo valore a null. Quindi spostiamo la valorizzazione di IDCliente in RowInserting

 protected void ASPxGridViewCertificati_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
    e.NewValues["IDCliente"] = Session["IDCliente"];
}

Multi Row Editing