Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Visualizzare colonna GridView secondo condizione

    Ciao a tutti.

    E' possibile in asp net mostrare o meno una colonna del gridview a secondo del valore di una variabile session o cookie?

    Sto provando così, cioè assegnando un nome al `HeaderText` alla colonna da nascondere e controllando il valore della variabile in `GridView1_RowCreated`, ma pur non avendo errori la colonna che mi interessa nascondere nel gridview continua ad essere visibile...



    codice:
    <script runat="server">
    public void Page_Load (Object sender, EventArgs e)
    {
        OdbcConnection myConnectionString = new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString);
        myConnectionString.Open();
    
        myConnectionString.Close();
        myConnectionString.Dispose();
        
        lblMessage.Text = "";
    
         if (Request.Cookies["nome"] != null)
        {
            string fld = Request.Cookies["nome"].Value;
            Response.Write("Eccomi ...
    ");
            Response.Write(fld + "
    ");
    
        }
        else
        {
            Response.Write("Nessun cookie ...
    ");
        }
    
     }
    
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        
        (
           (DataControlField)GridView1.Columns
                 .Cast<DataControlField>()
                 .Where(fld => fld.HeaderText == "Modifica")
                 .SingleOrDefault()
        ).Visible = false;
    } 
    </script>
    
    <asp:TemplateField HeaderText="Modifica"> 
    
        <ItemTemplate>
          <asp:ImageButton ID="ImageButton1" CommandName="Edit" Runat="Server"
          ImageUrl="/Images/edit.gif" ToolTip="edit" 
          OnClientClick="return confirm('Confirm?.');" />
        </ItemTemplate>
    
        <EditItemTemplate>
          <asp:ImageButton ID="ImageButton2" CommandName="Update" Runat="Server"
          ImageUrl="/Images/update.gif" ToolTip="update"
          OnClientClick="return confirm('Confirm?.');" /> 
    
          <asp:ImageButton ID="ImageButton3" CommandName="Delete" Runat="Server"
          ImageUrl="/Images/delete.gif" ToolTip="delete"
          OnClientClick="return confirm('Confirm?.');" />
        </EditItemTemplate>
    
      </asp:TemplateField>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    l'evento RowCreated, avviene per ogni riga, quindi non credo sia il posto ottimale.
    La colonna la nascondi una volta sola, per tutte le righe, quindi sposterei sullevento DataBound oppure addirittura nel PreRender della GridView.

    Inoltre, carino l'utilizzo di Linq, ma se la colonna ha posizione fissa, più semplice una cosa del genere:
    codice:
        //definisco le constandi delle colonne in base alla posizione
        private int M_iCol_Tel = 3;
        private int M_iCol_Prospect = 4;
        private int M_iCol_Comandi = 9;
    ...
    ...
    ...
    protected void ......
    {
        GridView1.Columns[M_iColComandi].Visible = false;
    }

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    La semplicità è la cosa migliore, grazie!
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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.