2012-11-08 3 views
5

Quando l'utente passa sopra l'intestazione della colonna di una colonna in griglia per es .: Titolo colonna Anno, quando passo il mouse sopra Anno dovrei vedere una spiegazione di cosa significa quell'anno "Questo è l'anno in cui lo studente è entrato nel college ecc.".Come aggiungere un suggerimento sul mouse sopra l'intestazione della colonna della vista della griglia

Qui di seguito è il mio codice ascx:

<asp:GridView ID="grdView" runat="server" Width="900px" AutoGenerateColumns="False" 
       AllowPaging="true" AllowSorting="true" CellSpacing="0" CellPadding="5" PageSize="20" 
     OnRowDataBound="grdView_RowDataBound"> 
       <Columns> 
<asp:TemplateField HeaderText="ID Number" ItemStyle-Width="90px" > 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("ID")%'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField><asp:BoundField DataField="StudentName" HeaderText="StudentName"> </asp:BoundField> 

Per favore fatemi sapere come ho potuto avere con il mouse sopra i testi o le descrizioni dei comandi sui titoli delle colonne del mio GridView. Grazie,

risposta

5

non ho mai fatto qualsiasi sviluppo asp.net, ma sembra che ci sia una soluzione fornita qui: how to add title for every header column in gridview in ASP.NET

il campione potrebbe essere la seguente:

<asp:GridView ID="grdView" runat="server" Width="900px" AutoGenerateColumns="False" 
      AllowPaging="true" AllowSorting="true" CellSpacing="0" CellPadding="5" PageSize="20" 
    OnRowDataBound="grdView_RowDataBound"> 
      <Columns> 
<asp:TemplateField HeaderText="ID Number" ItemStyle-Width="90px" > 
<HeaderTemplate> 
     <asp:Label ID="Header" ToolTip="HERE WE GO!!!!" runat="server" Text="Label"></asp:Label> 
     </HeaderTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("ID")%'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField><asp:BoundField DataField="StudentName" HeaderText="StudentName"> </asp:BoundField> 

darei che una prova :)

5

Nel codice dietro, creare il metodo RowDataBound per il GridView e aggiungere il codice qui sotto

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.Header) 
    { 
     foreach (TableCell cell in e.Row.Cells) 
     { 
      cell.Attributes.Add("title", "Tooltip text for " + cell.Text); 
     } 
    } 
} 

Non dimenticare di impostare l'attributo OnRowDataBound in GridView.

http://rosshawkins.net/archive/2007/04/15/adding-tooltips-to-gridview-headers.html.aspx

+0

Che fa la cella, e l'intestazione? – SearchForKnowledge

+0

Il link crs0794 pubblicato è un ottimo modo per aggiungere suggerimenti all'intestazione. Vale la pena leggere – Doreen

6

Here is the CSS tooltip for Gridview in C# using Jquery

protected void grd_popup_details_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     for (int i = 0; i < e.Row.Cells.Count; i++) 
     { 
      e.Row.Cells[i].ToolTip = e.Row.Cells[i].Text; 
     } 
    } 

Refference link

+0

più 1 per la grafica delle informazioni più di ogni altra cosa! :) Come si fa a farlo? – Fandango68

+0

Come aggiungere solo tool-tip per la particolare colonna, ad esempio nella risposta solo per i commenti –

0

La sua possibile utilizzare di ColumnName anche quando Genera automaticamente = True e le colonne GridView sono stati determinati in modo dinamico.

Anche HtmlDecode() sembrava richiesto quando il testo contiene caratteri di escape come virgolette doppie.

Dictionary<string, int> _headerIndiciesForDetailsReportGridView = null; 

protected void detailsReportGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (_headerIndiciesForDetailsReportGridView == null) 
    { 
     int index = 0; 
     _headerIndiciesForDetailsReportGridView = ((Table)((GridView)sender).Controls[0]).Rows[0].Cells 
      .Cast<TableCell>() 
      .ToDictionary(c => c.Text, c => index++); 
    } 

    if (e.Row.RowType == DataControlRowType.DataRow) 
    {     
     TableCell cell = e.Row.Controls[_headerIndiciesForDetailsReportGridView["theColumnName"]] as TableCell; 

     // Set tooltip to the full original text. Decode to remove &quot, etc. 
     // 
     string orgText = cell.ToolTip = HttpUtility.HtmlDecode(cell.Text); 

     if (orgText.Length > 20) // If cell text should be shortened 
      cell.Text = HttpUtility.HtmlEncode(orgText.Substring(0, 20) + "..."); 
    } 
}