- PR -

Visual Studio 2003へのTreeView Webコントロールの追加について

1
投稿者投稿内容
なれ
会議室デビュー日: 2006/03/03
投稿数: 2
投稿日時: 2006-03-03 17:27
初めて投稿します。
説明がかなり長くなってしまっております。
宜しくお願い致します。


アットマークITのTreeViewコントロール追加の記事http://www.atmarkit.co.jp/fdotnet/dotnettips/283asptreeview1/asptreeview1.html
を参考に、TreeView.aspxを試したところ、

System.Xml.XmlException: ルート レベルのデータが無効です。 行 1、位置 1 です

というエラーが出て動作しませんでした。

そこで、本掲示板の他のスレッド
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=25559
を参考に以下のように書き換えたところ、TreeViewを使うことができるようになりました。

<%@ Page ContentType="text/html"%>
<%@ Register TagPrefix="ie" Namespace="Microsoft.Web.UI.WebControls"
Assembly="Microsoft.Web.UI.WebControls" %>

<script language="vb" runat="server">
Sub Page_Load()
Me.tree.TreeNodeSrc = Server.MapPath("sitemap.xml")
Me.tree.DataBind()
End Sub
</script>

<html>
<head>
<title>TreeViewコントロールでツリー表示</title>
</head>
<body>
<form runat="Server">
<ie:TreeView id="tree" runat="Server"
SystemImagesPath="/webctrl_client/1_0/treeimages">
<ie:TreeNodeType Type="Folder"
ExpandedImageUrl="/webctrl_client/1_0/images/folderopen.gif"
ImageUrl="/webctrl_client/1_0/images/folder.gif" />
<ie:TreeNodeType Type="File"
ImageUrl="/webctrl_client/1_0/images/html.gif" />
</ie:TreeView>
</form>
</body>
</html>


しかし、上記はNotePadなどで単一のaspxファイルで記述した場合のみ動作します。
Visual Studio 2003を使って上記と同じコードを記述してWebアプリケーションを作成する場合は、追加したTreeViewコントロールを認識せず、TreeView.aspxのデザイン画面では「コントロール作成エラー」がでます。よって当然ながらTreeView.vbのコード画面では"Me.tree.TreeNodeSrc ...."といった記述ができないためビルドエラーとなります。

<%@ Import Namespace="Microsoft.Web.UI.WebControls" %>
を追加しても認識してくれません。

マイクロソフトのページ
http://support.microsoft.com/default.aspx?scid=kb;ja;319441
によると、
WebControlsをダウンロードすれば、ツールボックス設定画面の「.NET Framework コンポーネント」一覧に名前空間がMicrosoft.Web.UI.WebControls のTreeViewチェックボックスが現れるはずなのですが、今の私のVisual StudioではWebControlsをインストールしたにもかかわらずSystem.Windows.Formsしか表示されておりません。

このような場合、私はTreeViewコントロールのインストールに失敗しているのでしょうか?
Visual Studioをお使いの方、WebフォームツールボックスからTreeViewをドラッグ&ドロップでデザイン画面に配置することができるのでしょうか?

以上、宜しくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-04 22:05
 DLL を規定の位置に置いて、参照の追加をしましたか?
 その後、ツールボックスにもコントロールの追加をしてみてください。


 ソースコードより、あなたが行った手順の方が重要だと思います。

〆 written by Jitta@わんくま同盟 on 2006/03/04
なれ
会議室デビュー日: 2006/03/03
投稿数: 2
投稿日時: 2006-03-06 13:46
Jittaさん

回答を有り難うございました。
ご指摘頂きました通りに、参照設定の追加が抜けておりました。
追加しましたところ、System.Xml.XmlExceptionエラーはそのまま
ですが、Page_Load()でXMLソースコードをDataSourceに割り当てる
方法ならTreeViewコントロールを認識できるようになりました。
有り難うございました。


>> その後、ツールボックスにもコントロールの追加をしてみてください。

こちらは残念ながら未だに解決できておりません。
ツールボックスへのコントロール追加画面において、
TreeViewコントロールはWindows.Forms名前空間のみで、
Microsoft.Web.UI.WebControls名前空間のものが
選択リストに現れません。

コントロールの配置にドラッグ&ドロップが使えないだけで、
HTMLに直接TreeViewを書き込めば問題はありませんので、
これで取りあえずは先に進めそうです。
有り難うございました。



じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-06 18:27
引用:

なれさんの書き込み (2006-03-06 13:46) より:

こちらは残念ながら未だに解決できておりません。
ツールボックスへのコントロール追加画面において、
TreeViewコントロールはWindows.Forms名前空間のみで、
Microsoft.Web.UI.WebControls名前空間のものが
選択リストに現れません。


GAC に登録されていないだけかな?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-07 06:20
ツールボックス上で右クリック、[アイテムの追加と削除]→[参照]ボタン→Microsoft.Web.UI.WebControls.dll を選択。
1

スキルアップ/キャリアアップ(JOB@IT)