Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [ASP.NET 4] Gridview + switch iconcina

    Ciao a tutti, ho un problema di gestione di una icona all'interno di una gridview in una pagina asp.net e codebehind VB. La mia esigenza e quanto fatto fino ad ora è mostrare una icona differente per ogni riga a seconda del valore di un parametro dentro una delle colonne della gridview. Per farlo io ho l'ho pensata così:

    ASP.NET:
    codice:
        <asp:GridView ID="gv1" runat="server" CellPadding="2" CellSpacing="2" GridLines="None"
            AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Image ID="imgID" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="proprietario" HeaderText="Owner" SortExpression="proprietario">
                    <ItemStyle HorizontalAlign="Right" />
                </asp:BoundField>
            </Columns>
        </asp:GridView>
    Codebehind VB:
    codice:
     
    Protected Sub gv1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv1.RowDataBound
            If e.Row.RowType = DataControlRowType.DataRow Then
                Dim nImgID As Image = CType(e.Row.FindControl("imgID"), Image)
                For Each myRow As GridViewRow In gvPMProject.Rows
                    If myRow.Cells(3).Text = lblNomeProp.Text Then
                        nImgID.ImageUrl = "~/Images/cl_24.png"
                        nImgID.ToolTip = "Proprietario"
                    Else
                        nImgID.ImageUrl = "~/Images/pm_20_b.png"
                        nImgID.ToolTip = "Furitore"
                    End If
                Next
            End If
        End Sub
    Il problema è che in effetti la gridview ha tutte le sue iconcine corrette per ciascuna row a seconda che sulla row compaia un proprietario o un fruitore, tranne che nella prima row della gridview, dove l'icona è sempre broken (cliccando sulle proprietà dell'immagine nella pagina del browser infatti è l'unica che non ha alcuna parametrizzazione per essere attiva).
    Mi chiedevo come mai evita sempre di caricare la prima icona quando cicla?

    Spero d'essermi spiegato bene, sono a disposizione per chiarire meglio qualsiasi concetto se può essere d'aiuto.

    Grazie anticipatamente.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    La sub RowDataBound e' GIA' un ciclo, non c'e' bisogno di farne un altro all'interno...

    E' una sub che viene richiamata ogni volta che una riga viene "legata" ad un dato (bound).

    Come hai fatto tu per ogni set di righe Bindate, viene effettuato un altro ciclo che le analizza tutte, non ha senso.

    Dovresti vedere la tua riga con "e.row(ind)" se non ricordo male.
    Prova a correggere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.