通过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);
}
}
... {
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 " >
<% ...@ 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 >
< 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 >
<% ... @ 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。