Ciao a tutti,
quale è il modo per intercettare se un GridView è popolato o è vuoto?
Mi servirebbe infatti per far apparire o meno un pulsante per il download del report.
Grazie
Ciao a tutti,
quale è il modo per intercettare se un GridView è popolato o è vuoto?
Mi servirebbe infatti per far apparire o meno un pulsante per il download del report.
Grazie
Ciao, credo che puoi risolvere così:
if (tuoGridview.Rows.Count > 0)
{
// gridview non vuoto
}
else
{
// gridviw vuoto
}
![]()
L'idea è buona, il problema è che tutto ciò mi serve per mostrare una label del tipo "Non sono stati trovati record".
Mi succede però, che avendo messo la proprietà
<asp:GridView ID="GridView1" runat="server" OnLoad="MostraLabel" ........
nella definizione del mio GridView, e il metodo:
public void MostraLabel(object sender, EventArgs e)
{
if (GridView1.Rows.Count > 0)
{
btnExcel.Visible = true;
}
else
lblNotFound.Visible = true;
}
e la label
<asp:Label runat="server" ID="lblNotFound" ForeColor="Red" Visible="false" Text="Non sono stati trovati record" />
succede che mi appare la scritta non appena arrivo nella pagina, mentre io vorrei che questo accadesse solo quando l'utente inserisce un valore nella textbox e preme il pulsante (è un GridView filtrato in base a questo valore).
Come fare?
allora forse la label non ti serve, toglila e metti nella proprietà "EmptyDataText" della gridview questo: "Non sono stati trovati record".
![]()
Avevo già provato questa strada, il problema però permane, nel senso che appena accedo alla pagina già mi compare questa scritta.
allora la prima cosa che mi viene in mente..nel page_load metti:
if (!IsPostBack)
{
tuaGridview.EmptyDataText = "";
}
else
{
tuaGridview.EmptyDataText = "Non ci sono record";
}
così imposti da codice la proprietà e la prima volta che accedi alla pagina non ti appare "Non ci sono record".
![]()
Ottimo, ora funziona correttamente.
Ho solo un problemino quando faccio l'update.
Siccome uno dei 2 campi che ho abilitato per l'aggiornamento è di tipo decimal(10,2) nella mia tabella (è un prezzo), mi esce questo errore:
Exception Details: System.Data.SqlClient.SqlException: Error converting data type nvarchar to numeric.
Come posso fare in modo per evitare ciò?
Tieni presente che il mio SqlDataSource è di questo tipo:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MZConnectionString %>"
SelectCommand="SELECT [COD_SALDO], [COD_CONTO_CONTABILE], [CUR_IMPORTO], [TIP_CONTO], [COD_CENTRO_COSTO_FINALE] FROM [Saldi2] WHERE ([COD_CENTRO_COSTO_FINALE] = @COD_CENTRO_COSTO_FINALE)"
UpdateCommand="UPDATE Saldi2 SET CUR_IMPORTO = @CUR_IMPORTO, COD_CENTRO_COSTO_FINALE = @COD_CENTRO_COSTO_FINALE WHERE (COD_SALDO = @cod_saldo)">
<SelectParameters>
<asp:ControlParameter ControlID="txtCC" Name="COD_CENTRO_COSTO_FINALE" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>