Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    Controllo riga nell'itemdatabound

    Come posso verificare se la prima colonna contiene il testo "data"?

    dato che in quel caso vorrei applicare una modifica nella riga ....

    Grazie

  2. #2
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Che controllo stai usando?
    Che tipo di colonna è quella di cui vuoi ricavare il valore?
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Vorrei capire se la colonna contiene il testo "data"...

    le colonne contengono testo...



    protected void MyDataGrid_OnItemDataBound(object sender,
    DataGridItemEventArgs e)

    {

    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    ListItemType.AlternatingItem)

    {


    // come faccio il controllo sulla prima colonna???

  4. #4
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Dipende che tipo di colonna è, se è una BoundColumn allora lo trovi direttamente nel testo della cella, se è una TemplateColumn conterrà un controllo (es TextBox) che devi ricavare con il metodo FindControl e poi leggerne il valore.
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  5. #5
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    il datagrid ha questa struttura

    <asp:datagrid id="MyDataGrid" CssClass="Grid" runat="server" Width="950px" AutoGenerateColumns="False"
    HorizontalAlign="Center" DataKeyField="Data" AllowSorting="True" CellSpacing="1" CellPadding="3"
    BackColor="White" BorderColor="White" BorderWidth="2px" GridLines="None" BorderStyle="Ridge">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#698696"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
    <PagerStyle NextPageText="Succ" Font-Size="XX-Large" Font-Names="Arial" PrevPageText="Prec"
    HorizontalAlign="Right" ForeColor="Black" Position="TopAndBottom" BackColor="#C6C3C6" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>

    da codice creo il datatable e lo carico nel datagrid


    //lego la griglia al dt clone creato
    MyDataGrid.DataSource = TmpPlanning.DefaultView;
    MyDataGrid.DataBind();


    Grazie ancora

  6. #6
    Non vedo la definizione delle colonne.
    Comunque..
    Puoi definire un metodo pubblico e all'interno della colonna lo richiami


    Nella pagina aspx
    codice:
    <asp:TemplateColumn>
      <ItemTemplate>
       <%# CheckMe(DataBinder.Eval(Container.DataItem, "Nomecampo"))%>
      </ItemTemplate>
    </asp:TemplateColumn>
    Nel codebehind
    codice:
    Public Function CheckMe(ByVal a As String) As String
      if a = "Data" Then
        Return "TUO VALORE ok"
      else
        Return "TUO VALORE ko"
      end if
    End Function
    Se è solo una questione di visualizzare o meno un'informazione lascia questo compito alla query piuttosto che alla pagina. Semplifichi la vita a te stessa ed rendi la pagina più veloce!

    Ciao
    Kalman
    Kalman

  7. #7
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    devo farlo nell'itemdatabound in quando devo applicare una particolare "formattazione" alla riga

  8. #8
    Aggiungi l'evento
    codice:
    private void InitializeComponent()
    {    
    	this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.ItemDataBound);
    }
    E la funzione dovrebbe essere
    codice:
    private void ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){
    	if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem){
    		DataRowView drv = (DataRowView)e.Item.DataItem;
    		string s = "";
    		s = drv.Row.ItemArray[2].ToString(); //dove 2 è l'indice della cella nella tabella
    		if (s=="test"){
    			s = "ok";
    		}
    		else{
    			s = "ko";
    		}
    	}		
    }

    Fammi sapere
    Ciao
    K
    Kalman

  9. #9
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Grazie, ho trovato un'altra soluzione....

    faccio un controllo sul .text della cella....

    Grazie!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.