原创  c#(SVG)无刷新,动态执行Javascript处理SVG对象:ajax 页面 (三) 收藏

注意: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(){
          。。
}

发表于 @ 2007年08月30日 15:40:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:c#(SVG)无刷新,动态执行Javascript处理SVG对象:包含SVG的 页面.cs源码 (二)

  • 发表评论
  • 评论内容:
  •  
Copyright © luckyjan
Powered by CSDN Blog