• User Newbie

    [ASP.NET ] verifica se ci sono recordo o no

    Buon giorno

    ho questo problema,

    posto il codice per far capire meglio cosa voglio dire, parliamo di ASP.NET

    
     <table>
                        <tr> 
                          <td align="center" valign="top">
             <asp:DataList ID="dlImage" runat="server" DataSourceID="prova" RepeatColumns="1" BorderWidth="0" CellPadding="0" CellSpacing="0" Width="650"> 
               <itemtemplate>
                              <br>
                                <table width="650" border="0" cellpadding="0" cellspacing="0">
                                  <tr align="left" valign="top"> 
                                    <td height="1" colspan="2" background="../images/asx.gif"></td>
                                  </tr>
                                  <tr align="left"> 
                                    <td colspan="2" valign="top"><table width="100%" height="80" border="0" cellpadding="0" cellspacing="0">
                                        <tr> 
                                          <td width="95" align="left" valign="top"  style="padding:5px; "><a href="contr_prod.aspx?id=<%# Eval("id") %>&amp;tl=<%# Eval("titolo") %>" class="immagine"><img src='../public/<%# DataBinder.Eval(Container.DataItem, "foto")%>' alt="" width="94" height="71" border="0"></a></td>
                                          <td width="5" align="left" valign="top">&nbsp;</td>
                                          <td align="left" valign="top"  style="padding:5px;"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                                              <tr> 
                                                <td></td>
                                              </tr>
                                              <tr> 
                                                <td><a href="contr_prod.aspx?id=<%# Eval("id") %>&amp;tl=<%# Eval("titolo") %>" class="prodotti"><b><span style="text-transform:uppercase">
                                                  </span></b></a></td>
                                              </tr>
                                              <tr> 
                                                <td><strong><font color="#FFFF00">Descrizione:</font> 
                                                  </strong> 
            <asp:Label ID="desc" CssClass="Stile30" runat="server" Text='<%# Bind("desc") %>'></asp:Label>
                                                  <br>
                                                </td>
                                              </tr>
                                              <tr> 
                                                <td><strong><font color="#FFFF00">Quantità:</font> 
                                                  </strong> 
            <asp:Label ID="tot" CssClass="Stile30" runat="server" Text='<%# Bind("tot") %>'></asp:Label>
                                                  Euro</td>
                                              </tr>
                                              <tr> 
                                                <td><br>
                                                  mandare una mail a <a href="">[email protected]</a></td>
                                              </tr>
                                            </table></td>
                                        </tr>
                                        <tr> 
                                          <td align="left" valign="top">&nbsp;</td>
                                          <td align="left" valign="top">&nbsp;</td>
                                          <td height="13" align="right" valign="top"></td>
                                        </tr>
                                      </table></td>
                                  </tr>
                                  <tr align="right" valign="middle" bgcolor="#252525"> 
                                    <td height="18" colspan="2"><a href="prodotto_magazzino.aspx?id=<%# Eval("id") %>&amp;tl=<%# Eval("nome") %>"><img src="../images/quadro.gif" width="11" height="11" hspace="5" vspace="2" border="0"></a></td>
                                  </tr>
                                  <tr align="left" valign="top"> 
                                    <td height="1" colspan="2" background="../images/asx.gif"></td>
                                  </tr>
                                  <tr align="left" valign="top"> 
                                    <td height="15" colspan="2"></td>
                                  </tr>
                                </table>
                                <p>&nbsp;</p>
                     </itemtemplate>
                </asp:DataList>
               <asp:AccessDataSource ID="prova" runat="server" DataFile="~/mdb-database/magazzino.mdb"
            SelectCommand="SELECT * FROM [prodotto]">
               </asp:AccessDataSource>          
                       </td>
                        </tr>
                      </table>
    
    ```ho creato un DataList, il quale mi stampa a video tutti i prodotti che sono presenti nella tabella, e qui nessun problema.
    
    Il mio problema però nasce quando nel magazzino non ho nessun prodotto e vorrei che il Datalist mi stampasse a video un messaggio tpo " nessun prodotto presente".
    
    Come posso risolvere questo ?
    
    Ringrazio a tutti per l'attenzione ed eventuale risposta.
    
    Ciao

  • Super User

    Ciao alfredo67 e Benvenuto nel Forum GT!

    Puoi provare dopo il databinding qualcosa del tipo:
    That is, you might have something like:

    myDataGrid.DataSource = ...
    myDataGrid.DataBind()

    if(myDataGrid.Items.Count == 0)
    {
    myDataGrid.Visible = false;
    someLabelWithAMessage.Visible = true;
    }
    else
    {
    myDataGrid.Visible = true;
    someLabelWithAMessage.Visible = false;
    }


  • User Newbie

    Buon giorno cali1981, grazie della velocissima risposta.

    Allora perdonami ma non sono molto ferrato in asp.net e quindi ti chiedo :

    quella parte di coder che mi suggerisci dove la devo inserire ?

    nella stessa pagina dove ho il form con il Datalist oppure devo creare un altra pagina ?

    Grazie


  • User Newbie

    ho aggiunto poi nella stessa pagina dove ho il Datalist questa parte di coder

    
             <p align="center">
             <asp:Label id="lblRisultato" runat="server" visible="False" font-size="8pt" font-names="Verdana" ForeColor="Red">
             Gentile utente, non sono stati trovati prodotti.
             </asp:Label>
            </p>
    
    
    

  • Super User

    Il codice che ti ho scritto io devi metterlo nel code behind ovvero in una pagina .cs o.vb che ti dovrebbe avere creato il tool che usi. Altrimenti all'inizio dentro <script runat="server></script>


  • User Newbie

    grazie cali1981, mi hai risolto il problema.

    Se posso approfittare ancora della tua dosponibilità, chiedo, ho una pagina aspx la quale con questa istruzione

    
    <frameset rows="82,*" cols="*" framespacing="0" frameborder="NO" border="0">
      <frame src="primo.aspx" name="top" scrolling="NO" noresize marginwidth="0" marginheight="0" id="top" >
      <frameset rows="*" cols="250,*" framespacing="0" frameborder="NO" border="0">
            <frame src="secondo.aspx" name="leftFrame" scrolling="yes" noresize>
            <frame src="terzo.aspx" name="main" id="main">
        </frameset>
    </frameset>
    
    
    ```apre 3 pagine e compone una sorta di template con i frame, dove  ho un menù a sx, ho un top ( logo) e nella terza pagina al centro ci visualizzo delle tabelle.
    
    Ora usando una semplice istruzione di logout 
    
    <asp:ImageButton ImageUrl="logout.gif" ID="ImageButton5"  OnClick="acm_logout_Click" AlternateText="Effettua il logout"  runat="server"/>
    
    succede che la procedura esce solo dalla pagina frame dove il controllo è inserito, e quindi in quella pagina frame ricarica la pagina index per esempio.
    
    Ossia se il controllo logout lo metto nella frame top, da quella pagina esce e ricarica solo in quella pagina la index.
    
    Come fare invece, ad uscire totalmente da tutte le frame e ricaricare la pagina index ?
    
    Grazie

  • Super User

    Ciao, ti sconsiglio di usare frame, sarebbe meglio se usassi le master pages di asp.net. In ogni caso, credo che potresti fare il redirect nell'evento che gestisce il clik ma non so se te lo prende nella pagina principale.


  • User Newbie

    ciao

    si condivido perfettamente il fatto di non usare frame, ma la masterpage la uso già nel sito, questo sistema invece lo uso per gestire una sorta di area admin.

    come faccio ad usarla anche nella cartella admin ?

    ne posso creare un altra ?
    grazie


  • Moderatore

    penso che se usi il frame nell'admin e basta, non dovrebe rompere le scatole più di tanto, io personalmente ho il vecchio pannello realizzato per i cms che utilizza i frame nell'admin e non mi ha dato mai problemi, certo non è una souzione particolarmente elengante... però finchè è nel'admin....


  • User

    Butta via i frame.. Ormai sono obsoleti..
    Di master page ne puoi creare quante ne vuoi e volendo ne puoi creare anche un dentro un altra (però non ho presente come si faccia, so solo che si può volendo). Quindi vai più che tranquillo con le master.. :wink3: