使用UserControl和JavaScript动态生成ToolTips

通过JavaScript中的XMLHTTP对象可以得到一个网页的HTML码:

         function  ShowSAManageGroupItemToolTips (accidentID, manageGroupID)
        
{
            
if(ShowToolTips)
            
{
                
var url = "DiagramItemToolTips.aspx?AccidentID=" + accidentID + "&ManageGroupID=" + manageGroupID;
                
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
                xmlhttp.open (
"GET", url, false);
                xmlhttp.send();
                ShowToolTips (xmlhttp.responseText);
            }

        }

现在的工作就是,一般Aspx页面生成的内容都是包含了<html><Form>******标签的。这种内容我们是无法直接赋值给一 个div的,因为一个页面只能包含一个form。

此时如果尝试将Aspx页面中的<html><form>*****标记删掉,只留下ToolTips需要的控件,你可能会遇到类似这样的提 示:“TextBox必须被放置在标记了runat=server的form中”。

看似疑无路。

其实,我们可以利用UserControl的一个特性来解决,因为UserControl不需要一定放在Runat=server的form中。这样,我们可以在 UserControl中设计ToolTips界面,在页面中放置UserControl,然后删除页面中的<html>标记:

设计UserControl,然后拖到页面上,此时页面的代码是:

<% ...@ Register TagPrefix = " uc1 "  TagName = " SAManageGroupItemToolTips "  Src = " ../UserControl/SAManageGroupItemToolTips.ascx "   %>
<% ...@ Page language = " c# "  Trace = " False "  Codebehind = " DiagramItemToolTips.aspx.cs "  AutoEventWireup = " false "  Inherits = " Tencent.OA.Helper.Web._SeriousAccident.DiagramItemToolTips "   %>
< HTML >
    
< HEAD >
        
< title > </ title >
        
< meta http - equiv = " pragma "  content = " no- cache " >
        
< meta http - equiv = " Cache- Control "  content = " no- store, no-cache, max-age=0, must-revalidate " >
        
< meta name = " GENERATOR "  Content = " Microsoft Visual Studio .NET 7.1 " >
        
< meta name = " CODE_LANGUAGE "  Content = " C# " >
        
< meta name = " vs_defaultClientScript "  content = " JavaScript " >
        
< meta name = " vs_targetSchema "  content = " http://schemas.microsoft.com/intellisense/ie5 " >
     </ HEAD >
    
< body xmlns:tof = " http://www.oa.com/tof " >
        
< form id = " Form1 "  method = " post "  runat = " server " >
            
< uc1:SAManageGroupItemToolTips id = " SAManageGroupItemToolTips1 "  runat = " server "  EnableViewState = " False " ></ uc1:SAManageGroupItemToolTips >
        
</ form >
    
</ body >
</ HTML >

将页面中的html标记删掉,只留下对userControl的声明,此时页面的代码是:

<% @ Register TagPrefix="uc1" TagName="SAManageGroupItemToolTips" Src="../UserControl/SAManageGroupItemToolTips.ascx"  %>
<% @ Page language="c#" Trace="False" Codebehind="DiagramItemToolTips.aspx.cs" AutoEventWireup="false" Inherits="Tencent.OA.Helper.Web._SeriousAccident.DiagramItemToolTips"  %>
< uc1:SAManageGroupItemToolTips  id ="SAManageGroupItemToolTips1"  runat ="server"  EnableViewState ="False" ></ uc1:SAManageGroupItemToolTips >

编译并运行DiagramItemToolTips.aspx,查看其HTML源代码,已经是一个嵌套了若干子控件的 <Span>了。

这时就可以直接将该网页的源代码赋值给一个div的innerHtml。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值