首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# Visio 二次開發:Web 端檢視 Visio 圖紙(二)——Visio Viewer ActiveX 容器頁面與 JavaScript 動態綁定 SRC

     編輯:關於C語言

兩頁面架構

  1. 觸發頁:連結指向 VisioContainer.aspx?VisioID=xxx
  2. 容器頁:內嵌 Visio Viewer ActiveX,動態設定 SRC 指向串流頁面

VisioContainer.aspx 前端標記


<form id="Form1" runat="server">
  <div>
    <div align="right" style="font-size:x-small">
      如圖紙不能正常顯示,請
      <a href="https://www.cnblogs.com/Visio/Visio Viewer 2003.exe">
        下載安裝 Visio Viewer 2003
      </a>
    </div>
    <object id="Viewer1" 
      codebase="https://www.cnblogs.com/Visio/Visio Viewer 2003.exe" 
      height="100%" width="100%"
      classid="clsid:279D6C9A-652E-4833-BEFC-312CA8887857" 
      viewastext>
      <param name="_cx" value="31485">
      <param name="_cy" value="20373">
      <param name="BackColor" value="16777200">
      <param name="AlertsEnabled" value="-1">
      <param name="ContextMenuEnabled" value="-1">
      <param name="GridVisible" value="0">
      <param name="HighQualityRender" value="-1">
      <param name="PageColor" value="16777215">
      <param name="PageVisible" value="-1">
      <param name="PropertyDialogEnabled" value="-1">
      <param name="ScrollbarsVisible" value="-1">
      <param name="SizeGripVisible" value="-1">
      <param name="ToolbarVisible" value="-1">
      <param name="SRC" value="">
      <param name="CurrentPageIndex" value="0">
      <param name="Zoom" value="-1">
      <param name="PageTabsVisible" value="-1">
      <param name="ToolbarButtons" value="">
      <param name="ToolbarCustomizable" value="-1">
    </object>
  </div>
</form>

後台動態綁定 SRC (JavaScript 注入)


protected void Page_Load(object sender, EventArgs e)
{
    string VisioID = Request.QueryString["VisioID"];
    StringBuilder sb = new StringBuilder();
    sb.Append("<script language='Javascript'>");
    sb.AppendFormat("Form1.Viewer1.src = 'VisioFile.aspx?VisioID={0}'", 
        System.Web.HttpUtility.UrlEncode(VisioID));
    sb.Append("</script>");
    ClientScript.RegisterStartupScript(typeof(string), "loadvisio", sb.ToString());
}

關鍵參數說明

參數值/說明
classidclsid:279D6C9A-652E-4833-BEFC-312CA8887857 (Visio Viewer 固定)
codebase自動下載安裝程式 URL
SRC初始為空,由 JS 動態指向串流頁面
ToolbarVisible-1 (顯示工具列)
HighQualityRender-1 (高品質渲染)

為何不用直接指定檔案路徑?

系統將 Visio 檔案以二進位儲存於資料庫,無實體檔案路徑,故需動態串流頁面 (VisioFile.aspx) 供 ActiveX 載入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved