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

    ItemdataBound: ma con templatecolumn???

    Vorrei far n modo di colorare le righe di un datagrid in modo diverso a seconda che ci sia o meno un certo valore in una cella. Ho fatto così


    Sub Datagrid_itemdatabound(sender As Object, e As DataGridItemEventArgs)
    If e.Item.Cells(2).Text = "2" Then
    e.Item.BackColor = System.Drawing.Color.Red
    e.Item.Font.Bold = True
    End If
    Label1.Text = Label1.Text & " " & e.Item.Cells(2).Text
    End Sub

    La label1, messa per prova, però non mi scrive i valori contenuti nella cella 2, cioè la terza, se non per la prima riga di intestazione.
    La stessa routine, presa dall'SDK, con l'esempio dell'SDK funziona, per cui mi è venuto in mente che dipenda dal grid: in quello dell'SDSK c'erano bound clumn, nel mio - che si trova sotto - ho usato templatecolumn.

    asp:datagrid id="DataGrid1" runat="server" width="80%" CellSpacing="1" GridLines="None" CellPadding="3" BackColor="White" ForeColor="Black" OnPageIndexChanged="DataGrid_Page" PageSize="15" AllowPaging="True" OnDeleteCommand="DataGrid_Delete" OnCancelCommand="DataGrid_Cancel" OnUpdateCommand="DataGrid_Update" OnEditCommand="DataGrid_Edit" OnItemCommand="DataGrid_ItemCommand" DataKeyField="idautore" AutoGenerateColumns="False" OnItemCreated="Datagrid_itemcreated" OnItemDataBound="Datagrid_itemdatabound">
    <FooterStyle backcolor="#C6C3C6"></FooterStyle>
    <HeaderStyle font-bold="True" forecolor="White" backcolor="#4A3C8C"></HeaderStyle>
    <PagerStyle font-size="Smaller" horizontalalign="Right" backcolor="#C6C3C6" mode="NumericPages"></PagerStyle>
    <ItemStyle backcolor="#DEDFDE"></ItemStyle>
    <Columns>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit">
    <ItemStyle font-size="Smaller" width="10%"></ItemStyle>
    </asp:EditCommandColumn>
    <asp:ButtonColumn Text="Delete" CommandName="Delete">
    <ItemStyle font-size="Smaller" width="10%"></ItemStyle>
    </asp:ButtonColumn>
    <asp:TemplateColumn HeaderText="ID">
    <ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem, "idAutore") %>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:Label runat="server" width="20" id="idautore" text='<%# cstr(DataBinder.Eval(Container.DataItem, "idautore")) %>' />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Nome">
    <ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem, "Nome") %>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" id="nome" Text='<%# cstr(DataBinder.Eval(Container.DataItem, "nome")) %>' />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="Cognome">
    <ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem, "Cognome") %>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" id="cognome" Text='<%# cstr(DataBinder.Eval(Container.DataItem, "cognome")) %>' />
    </EditItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>

  2. #2
    Ho provato anche FindControl così ma non va:

    Non funziona il FindControl???

    Nel datagrid ho

    <asp:TemplateColumn HeaderText="Nome">
    <ItemTemplate>
    <asp:Label id="pippo" runat="server" text='<%#databinder.eval(container.dataitem,"nome" )%>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" id="nome" Text='<%# cstr(DataBinder.Eval(Container.DataItem, "nome")) %>' />
    </EditItemTemplate>
    </asp:TemplateColumn>


    e voglio beccare il valore della label chiamata pippo con itemdatabound per cui:

    Sub Datagrid_itemdatabound(sender As Object, e As DataGridItemEventArgs)
    dim pippo as string= Ctype(e.Item.FindControl("pippo"), Label).Text
    label1.text= label1.text + pippo
    End Sub


    Non va erché dice

    Dettagli eccezione: System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto
    sulla riga del dim pippo.....

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.