- PR -

Webカスタムコントロールで追加したプロパティに値を指定するとデザイン時にUIが表示されない

1
投稿者投稿内容
あんふぃーるど
会議室デビュー日: 2008/11/25
投稿数: 2
投稿日時: 2008-11-25 17:51
クラスライブラリにSystem.Web.UI.WebControls.TextBoxを継承したカスタムコントロール(TextBoxHoge)を作成しています。

その後、WebSiteでTextBoxHogeのアセンブリを参照し、Default.aspxにTextBoxHogeを配置して、TextBoxHogeに拡張したMogeプロパティに値をセットしています。

値セット後にデザインを開くと「コントロールの作成エラー - TextBoxHoge1 '設定値' をプロパティ 'Moge' で設定できませんでした。」と表示されます。

以下は記載したコードです。

ーーーーー■TextBoxHogeーーーーー
Imports System.ComponentModel
Imports System.Reflection
Imports System.Web.UI

<DefaultProperty("Text"), ToolboxData("<{0}:TextBoxHoge runat=server></{0}:TextBoxHoge>")> _
Public Class TextBoxHoge
Inherits System.Web.UI.WebControls.TextBox

<Browsable(True)> _
Public Property Moge() As String
Get
Dim s As String = CStr(ViewState("Moge"))
If s Is Nothing Then
Return String.Empty
Else
Return s
End If
End Get
Set(ByVal value As String)
ViewState("Moge") = value
End Set
End Property

End Class
ーーーーーーーーーーーーーーーーー

ーーーーー■Default.aspxーーーーー
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register Assembly="hoge" Namespace="hoge" TagPrefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:TextBoxHoge ID="TextBoxHoge1" runat="server" Moge="aiueo"></cc1:TextBoxHoge>
</div>
</form>
</body>
</html>
ーーーーーーーーーーーーーーーーー


拡張したプロパティに値をセットした状態でデザインにて正しく表示させるにはどのようにすればいいのでしょうか?
よろしくお願い致します。
あんふぃーるど
会議室デビュー日: 2008/11/25
投稿数: 2
投稿日時: 2008-11-25 17:53
自己レスです。
補足です。

以下の開発環境で行っています。
WinXP SP3
VB2005
1

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