私たちのチームが3年または4年間使用しているTreeViewがあります。これはInternet ExplorerユーザーにMS Accessデータベースと1つのTreeViewリストにMSSQL 2005 Server。ActiveXコントロールでVBScriptの代わりにJQueryを使用しているすべてのブラウザのツリービュー
これの開発以来、私たちはジレンマを形成しています。ユーザーは、元のユースケースには含まれていなかったGoogle ChromeとFirefoxを使用することができ始めており、このオブジェクトはInternet Explorerの外部でコード化されたTreeView ActiveXコントロールと互換性がありません。私はこれの元の考えはthis type of Windows Common Controlから来たと信じています。
JQueryまたは別のテクノロジを使用して、これを可能にする簡単な方法は、サーバ側のスクリプトがないという現在の制約があります。?
ここでも、主要なブラウザのほとんどと互換性を持たせることを目的としています。
注:私はサーバー側のスクリプトを利用できるようにしようとしましたが、これはこのプロジェクトのオプションではありません。したがって、はJSP
、PHP
、ASP
などを使用してターゲットではありません。代わりに、を共有ネットワークのローカルファイルを使用してこれを行う方法を見つけます。
はい、私はこのタイプの設定に関係するセキュリティ上の脆弱性を知っています...これには関係なく、これが方向です。例えば
、ここでオブジェクトが使用されている:このオブジェクトは、Webページの本文に配置された後
<body onload="SetupPage()">
<object classid="CLSID:C74190B6-8589-11D1-B16A-00C0F0283628" id="MainTree" width="100%" height="290" style="font-family: times new roman; font-size: 16px; Visibility: visible">
<param name="Style" value="7">
<param name="_ExtentX" value="5292">
<param name="_ExtentY" value="10583">
<param name="_Version" value="393217">
<param name="HideSelection" value="0">
<param name="Indentation" value="767">
<param name="LabelEdit" value="0">
<param name="LineStyle" value="1">
<param name="PathSeparator" value="\">
<param name="Sorted" value="0">
<param name="Checkboxes" value="0">
<param name="FullRowSelect" value="0">
<param name="HotTracking" value="1">
<param name="Scroll" value="1">
<param name="SingleSel" value="0">
<param name="ImageList" value="ImgList">
<param name="BorderStyle" value="1">
<param name="Appearance" value="1">
<param name="MousePointer" value="0">
<param name="Enabled" value="1">
<param name="OLEDragMode" value="0">
<param name="OLEDropMode" value="0">
</object>
<object classid="CLSID:2C247F23-8591-11D1-B16A-00C0F0283628" id="ImgList" width="0" height="0" style="visibility: hidden"></object>
<IFrame id="PrtFrame" style="width: 0px; height: 0px">
</IFRAME>
</body>
いくつかのVBScriptの呼び出しは、次のようなものを使用して、このオブジェクトを移入することができます:
<script language="vbscript">
Sub SetupPage()
Call MainTree.Nodes.Clear
Call PopulateImageList
Call PopulateTree
End Sub
Sub PopulateTree()
Dim rs ' RecordSet
Dim i ' Index
Dim ndParent ' Parent Node
' Assign the main html form to a variable xfrm
Set xfrm = document.MainForm
' Setup a connection with the Database
Set AccessConn = CreateObject("ADODB.Connection")
AccessConn.open AccessConnectionString
strSQL = "SELECT..."
Set rs = AccessConn.Execute(strSQL)
' Manually set the parent nodes
i = 1
Set ndActive = MainTree.Nodes.Add(, 2, "IDC" & i, "Active", ImageIndex("active"))
' Move one forward, since the parent node was set manually
i = i + 1
Do While rs.EOF = False
' Add the detail to each parent node for each record returned...
rs.MoveNext
Loop
' etc...
End Sub
Sub PopulateImageList()
Dim lst
set lst = ImgList.ListImages.Add(1,"header",LoadPicture(DirectoryPath & "TreeImages\header.gif"))
set lst = ImgList.ListImages.Add(2,"hold",LoadPicture(DirectoryPath & "TreeImages\hold.gif"))
set lst = ImgList.ListImages.Add(3,"reviewed",LoadPicture(DirectoryPath & "TreeImages\reviewed.gif"))
set lst = ImgList.ListImages.Add(4,"completed",LoadPicture(DirectoryPath & "TreeImages\completed.gif"))
set lst = ImgList.ListImages.Add(5,"rejected",LoadPicture(DirectoryPath & "TreeImages\rejected.gif"))
set lst = ImgList.ListImages.Add(6,"printed",LoadPicture(DirectoryPath & "TreeImages\printer.gif"))
set lst = ImgList.ListImages.Add(7,"active",LoadPicture(DirectoryPath & "TreeImages\active.gif"))
set lst = ImgList.ListImages.Add(8,"archived",LoadPicture(DirectoryPath & "TreeImages\archived.gif"))
set lst = ImgList.ListImages.Add(9,"emailed",LoadPicture(DirectoryPath & "TreeImages\emailed.gif"))
set lst = ImgList.ListImages.Add(10,"assigned",LoadPicture(DirectoryPath & "TreeImages\assigned.gif"))
End Sub
</script>
データがソース・データベースで利用可能になると、すべてのユーザーが行う必要があり、共有ネットワーク上のローカルファイルを開くと、彼らは次のようなものを見ている:
これを達成するためのアイデアや方法は、非常に高く評価されます。
この質問では、MS-ACCESSに固有のものは何もありません。なぜそこにタグがありますか? –
解決策は、MS AccessデータベースとMSSQL 2005データベースにリンクできる必要があります。これは、両方とも連携してクライアントのみのオプションを提供する必要があるためです。 –
私はこのプラグインを見つけましたが、これは私が探しているものですが、IEでしか動作しないという同じ問題があります。 http://plugins.jquery.com/project/ACCESSdb –