如何在asp.net的gridview内的asp边界域数据字段hedertext上设置工具提示?

时间:2018-11-02 08:00:25

标签: asp.net

我有网格视图。有两个BoundField。在这里我要在BoundField DataField HeaderText Topic 上设置工具提示。

代码。

User object

有什么解决办法吗?

2 个答案:

答案 0 :(得分:1)

一种实现这一目标的方法是将您的BoundField转换为TemplateField选项。

转换此:

<asp:BoundField  DataField="topic"  HeaderText="Topic"  />

对此:

<asp:TemplateField HeaderText="Topic">
     <ItemTemplate>
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("Topic") %>' ToolTip ='<%# Bind("Topic") %>'></asp:Label>
     </ItemTemplate>
</asp:TemplateField>

或者从后面的代码中,您可以在RowDataBound事件中完成此操作

protected void Dgvlist_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;
        }
    }

答案 1 :(得分:1)

通常有3种方法在BoundField列上设置工具提示:

1)使用RowDataBound事件背后的代码

protected void Dgvlist_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) {
        e.Row.Cells[0].ToolTip = DataBinder.Eval(e.Row.DataItem, "Topic", string.Empty);
    }
}

2)使用代码隐藏的RowCreated事件

protected void Dgvlist_RowCreated(object sender, GridViewRowEventArgs e)
{
    foreach (TableRow row in Dgvlist.Controls[0].Controls)
    {
        row.Cells[0].ToolTip = DataBinder.Eval(e.Row.DataItem, "Topic", string.Empty);
    }
}

3)转换为TemplateField并使用Label控件

<asp:GridView ID="Dgvlist" runat="server" ...>
  <Columns>
   <asp:TemplateField HeaderText="Topic">
       <asp:Label ID="TopicID" runat="server" Text='<%# Eval("topic") %>' ToolTip='<%# Eval("topic") %>'>
       </asp:Label>
   </asp:TemplateField>
   <asp:BoundField DataField="question" HeaderText="Question"  /> 
   </Columns>
</asp:GridView>

实际的实现方式取决于您所使用的方法。

相关问题:

How to add tooltip to BoundField