+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [ASP.NET] DetailsView e controllo campi nulli

  1. #1
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61

    [ASP.NET] DetailsView e controllo campi nulli

    Ciao a tutti...
    Ho una pagina contenente una DetailsView che recupera i dati dal mio database SQL.
    Ho la necessità di controllare che i campi che mi vengono ritornati dal datbase non siano nulli. In caso non contenessero delle informazioni vorrei evitare di visualizzarli.

    Posto il codice aspx della pagina e il relativo codice aspx.vb

    ..............
    <asp:DetailsViewID="DetailsView1"runat="server"Height="50px"Width="500px"CellPadding="4"GridLines="None"ForeColor="#333333"AutoGenerateRows="False"DataSourceID="SqlDataSource1">
    <FooterStyleBackColor="#1C5E55"ForeColor="White"Font-Bold="True"/>
    <EditRowStyleBackColor="#7C6F57"/>
    <RowStyleBackColor="#E3EAEB"/>
    <PagerStyleBackColor="#666666"ForeColor="White"HorizontalAlign="Center"/>
    <HeaderStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/>
    <AlternatingRowStyleBackColor="White"/>
    <CommandRowStyleBackColor="#C5BBAF"Font-Bold="True"/>
    <FieldHeaderStyleHorizontalAlign="Right"BackColor="#D0D0D0"Font-Bold="True"width="150px"/>
    <Fields>
    <asp:BoundFieldDataField="REL_LABEL"HeaderText="Release Commerciale"SortExpression="REL_LABEL"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_DATA"HeaderText="Data Release"SortExpression="REL_DATA"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_STATO"HeaderText="Stato Release"SortExpression="REL_STATO"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_FORNITURA"HeaderText="Fornitura"SortExpression="REL_FORNITURA"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_DELIVERY"HeaderText="Delivery"SortExpression="REL_DELIVERY"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SOLUZIONE"HeaderText="Soluzione"SortExpression="REL_SOLUZIONE"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_TOTAGG"HeaderText="Totali Aggiuntivi"SortExpression="REL_TOTAGG"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_DATAAGG"HeaderText="Data Totali Aggiuntivi"SortExpression="REL_DATAAGG"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_PHS"HeaderText="Release PHS"SortExpression="REL_PHS"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_DATAPHS"HeaderText="Data Release PHS"SortExpression="REL_DATAPHS"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_RILSW"HeaderText="Rilascio Software"SortExpression="REL_RILSW"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_EXELABEL"HeaderText="Congelamento"SortExpression="REL_EXELABEL"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SUBS1"HeaderText="Sottosistema"SortExpression="REL_SUBS1"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SORG1"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG1"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_EXE1"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE1"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SUBS2"HeaderText="Sottosistema"SortExpression="REL_SUBS2"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SORG2"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG2"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_EXE2"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE2"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SUBS3"HeaderText="Sottosistema"SortExpression="REL_SUBS3"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SORG3"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG3"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_EXE3"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE3"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SUBS4"HeaderText="Sottosistema"SortExpression="REL_SUBS4"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SORG4"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG4"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_EXE4"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE4"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SUBS5"HeaderText="Sottosistema"SortExpression="REL_SUBS5"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SORG5"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG5"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_EXE5"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE5"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SUBS6"HeaderText="Sottosistema"SortExpression="REL_SUBS6"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SORG6"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG6"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_EXE6"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE6"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_SUBS7"HeaderText="Sottosistema"SortExpression="REL_SUBS7"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_SORG7"HeaderText="Sorgenti Congelati"SortExpression="REL_SORG7"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_EXE7"HeaderText="Eseguibili Congelati"SortExpression="REL_EXE7"ItemStyle-BackColor="white"/>
    <asp:BoundFieldDataField="REL_IMPIANTO"HeaderText="Impianto di prova"SortExpression="REL_IMPIANTO"ItemStyle-BackColor="#E3EAEB"/>
    <asp:BoundFieldDataField="REL_DESCCOLL"HeaderText="Descrizione collegamento"SortExpression="REL_DESCCOLL"ItemStyle-BackColor="white"/>
    </Fields>
    </asp:DetailsView>
    <asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStringsatchConnectionString %>"
    SelectCommand="SELECT [REL_LABEL], [REL_DATA], [REL_STATO], [REL_FORNITURA], [REL_DELIVERY], [REL_SOLUZIONE], [REL_EXELABEL], [REL_TOTAGG], [REL_DATAAGG], [REL_PHS], [REL_DATAPHS], [REL_IMPIANTO], [REL_DESCCOLL], [REL_RILSW], [REL_SUBS1], [REL_EXE1], [REL_SORG1], [REL_SUBS2], [REL_EXE2], [REL_SORG2], [REL_SUBS3], [REL_EXE3], [REL_SORG3], [REL_SUBS4], [REL_EXE4], [REL_SORG4], [REL_SUBS5], [REL_EXE5], [REL_SORG5], [REL_SUBS6], [REL_EXE6], [REL_SORG6], [REL_SUBS7], [REL_EXE7], [REL_SORG7], FROM [release] WHERE ([REL_LABEL] = @REL_LABEL2)">
    <SelectParameters>
    <asp:SessionParameterName="REL_LABEL2"SessionField="IDrelease"Type="String"/>
    </SelectParameters>
    </asp:SqlDataSource>
    .........................


    codice aspx.vb:
    Imports System.Windows.Forms
    Imports System.Data
    PartialClass clienti
    Inherits System.Web.UI.Page
    ProtectedSub LogoCliente_Load(ByVal sender AsObject, ByVal e As System.EventArgs)
    LogoCliente.ImageUrl =
    "./loghi/" & Context.Request.QueryString("Cliente") & ".png"
    Label1.Text = Context.Request.QueryString("Cliente")
    DetailsView1.Visible =
    False
    EndSub
    ProtectedSub DetailsView1_Load(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DetailsView1.Load
    Dim nomeCliente AsNew GesPatchDb
    Dim esitoQuery As DataSet = nomeCliente.GetClient(Context.Request.QueryString("Cliente"))
    If (esitoQuery.Tables(0).Rows.Count) Then
    Dim dr As DataRow = esitoQuery.Tables(0).Rows(0)
    If (dr.Item("CLI_REL1").ToString <> "") Then
    LinkButton1.Visible = True
    LinkButton1.Text = dr.Item("CLI_REL1")
    Else
    LinkButton1.Visible = False
    EndIf
    If (dr.Item("CLI_REL2").ToString <> "") Then
    LinkButton2.Visible = True
    LinkButton2.Text = dr.Item("CLI_REL2")
    Else
    LinkButton2.Visible = False
    EndIf
    If (dr.Item("CLI_REL3").ToString <> "") Then
    LinkButton3.Visible = True
    LinkButton3.Text = dr.Item("CLI_REL3")
    Else
    LinkButton3.Visible = False
    EndIf
    If (dr.Item("CLI_REL4").ToString <> "") Then
    LinkButton4.Visible = True
    LinkButton4.Text = dr.Item("CLI_REL4")
    Else
    LinkButton4.Visible = False
    EndIf
    EndIf
    EndSub
    ProtectedSub releaseDetails(ByVal release AsString)
    Session(
    "IDrelease") = release
    EndSub
    ProtectedSub LinkButton1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles LinkButton1.Click
    DetailsView1.Visible =
    True
    releaseDetails(sender.Text)
    EndSub
    ProtectedSub LinkButton2_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles LinkButton2.Click
    DetailsView1.Visible =
    True
    releaseDetails(sender.Text)
    EndSub
    ProtectedSub LinkButton3_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles LinkButton3.Click
    DetailsView1.Visible =
    True
    releaseDetails(sender.Text)
    EndSub
    ProtectedSub LinkButton4_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles LinkButton4.Click
    DetailsView1.Visible =
    True
    releaseDetails(sender.Text)
    EndSub
    End
    Class


    Grazie a tutti coloro che sapranno aiutarmi.....
    iltheo

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...ciao ilt vuoi rendere non visibili i linkbutton?
    ...verifica che il valore sia uguale da System.DBNull.Value

  3. #3
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61
    Ciao SignIn, no la mia necessità non è quella di rendere invisibili i linkbutton quando la stringa ad essi associata è vuota, ma quella, se è possibili, di NON visulaiizare i campi del DetailView quando questi non contengono informazioni.
    iltheo

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ciao ilth...adesso ho capito..
    mah hai veramente un sacco di strade che puoi percorrere, puoi per esempio posizionarti in un qualsiasi evento che come "cronologia" scatta dopo il bind del tuo controllo, quindi per esempio nel pre_render della pagina oppure dovrebbe andar bene anche l'evento DataBound di DetailsView e rendere non visibile la cella che ti interessa:
    codice:
    If LinkButton1.Text.Length = 0 Then
                'Rendo non visibile la cella 1(ricordati che inizia sempre da 0)
                DetailsView1.Rows.Item(1).Visible = False
            End If
    ...in questo modo quando scatta un post_back vai a verificare se il link è valorizzato e in tal caso ti comporti di conseguenza

  5. #5
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61
    Ciao SignIn, grazie per la risposta. Una sola domanda: nell'esempio che mi hai mandato controllo che il LinkButton abbia il campo testo ed eventualmente nego la visibilità del DetailsView? Io ho questa necessità (sempre che non abbia capito male l'esempio che mi hai dato): il LinkButton ha la parte Text scritta. Il DetailsView ad esso associato recupera tramite query i dati dal database (1 riga, n colonne). Non è detto che tutte le colonne della query siano scritte (alcune possono essere a NULL). Io vorrei evitare di visualizzare solo le colonne relative alla query che non contengono stringhe (quindi in qualche modo modificare il DetailsView). Magari è una cosa che non è possibile fare... non so...
    Intanto provo a "giocare" con l'esempio che mi hai inviato....
    Ti ringrazie, gentile e prezioso come sempre.
    Saluti
    iltheo

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da iltheo Visualizza il messaggio
    Ciao SignIn, grazie per la risposta. Una sola domanda: nell'esempio che mi hai mandato controllo che il LinkButton abbia il campo testo ed eventualmente nego la visibilità del DetailsView?
    no...nel mio esempio rendo non visibile solo un determianto campo(cella 1) no l'intero controllo
    Quote Originariamente inviato da iltheo Visualizza il messaggio
    Io ho questa necessità (sempre che non abbia capito male l'esempio che mi hai dato): il LinkButton ha la parte Text scritta. Il DetailsView ad esso associato recupera tramite query i dati dal database (1 riga, n colonne). Non è detto che tutte le colonne della query siano scritte (alcune possono essere a NULL). Io vorrei evitare di visualizzare solo le colonne relative alla query che non contengono stringhe (quindi in qualche modo modificare il DetailsView). Magari è una cosa che non è possibile fare... non so...
    Intanto provo a "giocare" con l'esempio che mi hai inviato....
    Ti ringrazie, gentile e prezioso come sempre.
    Saluti
    ...parti sempre dal punto di vista logico...supponi di avere una struttura con due righe e due campi(colonne), e supponi che la seconda riga presenta come valore nella colonna 2 stringa vuota...ora se rendiamo non visibile quest'ultima cella(quindi la colonna 2) allora tale "modifica" varrà per tutte le righe, compresa anche la prima..

  7. #7
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61
    grazie mille!!!
    Applicherò i tuoi consigli alla mia pagina.....
    Preziosissimo come sempre...
    Saluti.
    iltheo

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi