注意:ajax.aspx 不包含<html><head><body>等内容,只含一行.cs 调用说明,这样客户端返回空的 html
在ajax.aspx.cs中输出js脚本到空白的aspx页面,
然后返回给调用的doTestSVG.aspx
============= (1)ajax.aspx ===============
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajax.aspx.cs" Inherits="ajax" %>
============= (2)ajax.aspx.cs ============
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//(1)清空IE缓存
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
//(2)画设备及其位置
Response.Write(drawNodeSide());
}
}
private string drawNodeSide()
{
string nodeSideObj = drawNode();
if (nodeSideObj == "") return "";
DBConn DBObj = new DBConn();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("function nodeSide(){");
sb.Append(nodeSideObj);
sb.Append("}nodeSide();");
return sb.ToString();
}
private string drawNode()
{
string nodeSide = getNodeSide();
if (nodeSide == "") return "";
//取得SVG的javascript 脚本函数,并开始画SVG
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string SymbolFun = SymbolFunction();
sb.Append("var svgdoc=window.form1.thesvgdoc.getSVGDocument();");
//添加函数,并删除所有的 [信息Symbol "id" 属性必须以 "msg""开头
sb.Append(SymbolFun + "removeMsgSymbol();");
sb.Append("var posG=svgdoc.getElementById('nodeSide');");
//清除原来的定位容器<g>
sb.Append("if(posG!=null) {childs=posG.getChildNodes();");
sb.Append("while(childs.length>0) posG.removeChild(childs.item(0));}");
//创建NS链接对象
sb.Append("var svgns = 'http://www.w3.org/2000/svg';");
sb.Append("var setns = 'http://www.w3.org/1999/xlink';");
//创建新的定位容器<g>
sb.Append("var userPosG = svgdoc.createElement('g');");
sb.Append("var userDvcG = svgdoc.createElement('g');");
sb.Append("userDvcG.setAttribute('id','luserDvc');");
//人员位置定位信息
sb.Append(nodeSide);
//添加定位容器<g> 到SVG中
sb.Append("posG.appendChild(userPosG);");
sb.Append("posG.appendChild(userDvcG);");
return sb.ToString();
}
private string getNodeSide(){
。。
}