0

我有一个UserControl,它是一个ToolTip

. ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ucTooltip.ascx.cs" Inherits="Portail.formulaires.ucTooltip" debug="true"%>


<div id="dhtmltooltip" style="z-index:9999999999; display:inline-block;">
  <div id="dhtmltooltip_title">

  </div>
  <div id="dhtmltooltip_content">

  </div>
</div>

. cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace Portail.formulaires
    {
        public partial class ucTooltip : System.Web.UI.UserControl
        {
           protected void Page_Load(object sender, EventArgs e)
           {
              Page.ClientScript.RegisterClientScriptInclude("Hint", Page.ResolveUrl("~/Scripts/hint.js"));
           }
        }
    }

这个控件真的很简单,我只是在我想使用它的页面上添加一个引用和控件:

<%@ Register src="Controles/ucTooltip.ascx" tagname="ucTooltip" tagprefix="ucTT" %>
...
<ucTT:ucTooltip ID="tooltip" runat="server" />
... 

因此,控件被加载,脚本被添加到页面中。

但我正在尝试做一些更精细的事情。鉴于我有很多需要工具提示的控件,我决定在Event我的用户控件的基础上添加一个(它将显示和隐藏工具提示)。所有用户控件都在我的主页中使用(可从此页面访问工具提示)。

首先,我尝试过这样的事情:

protected virtual void Page_Load(object sender, EventArgs e)
{
   Attributes.Add("OnMouseOver", "alert('d')");
}

在控件的基本页面加载中,我有一个属性可以将事件“OnMouseOver”扔给控件。

但它不起作用,我很困惑为什么......

4

2 回答 2

2

虽然 aUserControl有一个Attributes属性,但它实际上并没有做任何事情。相反,您需要将onmouseover属性放在 .ascx 标记内的元素上。例如:

<div id="dhtmltooltip" style="z-index:9999999999; display:inline-block;" onmouseover="alert('d')">

如果您需要动态添加属性,则制作<div>一个runat="server"控件,以便您可以Attributes从代码隐藏文件中访问其属性:

dhtmltooltip.Attributes.Add("onmouseover", "alert('d')");
于 2013-09-03T16:03:23.800 回答
2

尝试这个:

Attributes.Add("OnMouseOver", "javascript:alert('d')");

于 2013-09-03T15:27:35.977 回答