如何将动态工具提示添加到gridview中的图像控件?

时间:2013-07-11 11:00:49

标签: c# jquery asp.net gridview tooltip

我在gridview中将图像控制作为

<asp:ImageButton ID="imgbtnInfo" runat="server" ImageUrl="info.jpg" ToolTip="Button info" title="Info" CommandArgument='<%#Eval("ID") %>' CommandName="Info"  />

这是我的网格视图图像按钮,其中我将每行的ID设为动态

   imgbtnInfo0
   imgbtnInfo1
   imgbtnInfo2

以这种方式取决于我将获得多少行的图像按钮ID,

我只是想使用Ajax或服务器端动态生成工具提示,我不知道 任何人都可以提供帮助

1 个答案:

答案 0 :(得分:0)

如果所有图像的文本相同,则可以将css类分配给图像控件:

 <asp:ImageButton ID="imgbtnInfo" CssClass="imgtooltip" runat="server" />

然后调用jQuery UI框架的tooltip函数:

$('.imgtooltip').tooltip();

如果每行必须有自己的工具提示文本,您可以在服务器端设置title属性。在您的情况下,由于您使用的是GridView,因此可以使用onrowdatabound事件。

<asp:gridview 
    onrowdatabound="myGridView_RowDataBound" 
    runat="server">
  </asp:gridview>


void myGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{

   if(e.Row.RowType == DataControlRowType.DataRow)
   {
      // Set the title text
      e.Row.Cells[yourImageIndex].Title = "yourTooltipText";
   }
 }

如果你知道客户端的title文本(javasctip),你也可以使用jQuery each方法设置这个值,循环抛出你的gridview表。

修改

如果您需要从数据库中获取工具提示文本,我建议您在服务器端代码中设置此值。您可以将其绑定到自定义html属性。

tool='<%# Eval("toolAtServerSideDataSource") %>'

此示例显示如何将名为tool的存储属性设置为工具提示:

演示:http://jsfiddle.net/y6rvs/1/