C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: DropDownListを継承したがイベントが取れない


(過去ログ 75 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■44365 / inTopicNo.1)  DropDownListを継承したがイベントが取れない
  
□投稿者/ まささん (1回)-(2009/12/07(Mon) 12:02:30)

分類:[ASP.NET (C#)] 

2009/12/07(Mon) 12:03:19 編集(投稿者)

初期値を設定したDropDownListを色々な画面で使いたいので
Webユーザーコントロール上にDropDownListを配置しPage_Loadで値をセットしました。

値は設定されているのですが
SelectedIndex等のイベントが取得できなくなりました。

解決方法をご存知の方がいればお願いします。

引用返信 編集キー/
■44366 / inTopicNo.2)  Re[1]: DropDownListを継承したがイベントが取れない
□投稿者/ まさる (127回)-(2009/12/07(Mon) 12:10:02)
まさる さんの Web サイト
No44365 (まささん さん) に返信
> Webユーザーコントロール上にDropDownListを配置しPage_Loadで値をセットしました。

ということですので、UserControlを継承したコントロールが作成されたことになります。
この場合、UserControlにSelectIndexChangedイベントがありませんので、

1.作成したユーザーコントロールにSelectIndexChangedイベントを実装する
2.DropDownListを継承したコントロールとして作り直す

のどちらかが必要です。

#個人的には2がお勧めです。
引用返信 編集キー/
■44375 / inTopicNo.3)  Re[2]: DropDownListを継承したがイベントが取れない
□投稿者/ まささん (3回)-(2009/12/07(Mon) 17:01:14)
>
> #個人的には2がお勧めです。

2を試したのですが、DropDownListを継承した新しいクラスを作ったのですが
フォームに配置すると、なぜかリンクになりドロップダウンリストになりません。

何か根本的に作成方法が間違っているのでしょうか?

よろしくお願いします。

引用返信 編集キー/
■44401 / inTopicNo.4)  Re[3]: DropDownListを継承したがイベントが取れない
□投稿者/ まさる (128回)-(2009/12/08(Tue) 08:09:44)
まさる さんの Web サイト
No44375 (まささん さん) に返信
>>
>>#個人的には2がお勧めです。
>
> 2を試したのですが、DropDownListを継承した新しいクラスを作ったのですが
> フォームに配置すると、なぜかリンクになりドロップダウンリストになりません。
>
> 何か根本的に作成方法が間違っているのでしょうか?
>
> よろしくお願いします。
>

単純にクラスファイルをドラッグ&ドロップで配置することはできません。

このあたりを参考にどうぞ。
http://msdn.microsoft.com/ja-jp/library/1e9b4c9f.aspx
引用返信 編集キー/
■44402 / inTopicNo.5)  Re[4]: DropDownListを継承したがイベントが取れない
□投稿者/ まささん (4回)-(2009/12/08(Tue) 09:17:02)
>
> 単純にクラスファイルをドラッグ&ドロップで配置することはできません。
>
> このあたりを参考にどうぞ。
> http://msdn.microsoft.com/ja-jp/library/1e9b4c9f.aspx

<%@ Register TagPrefix="uc2" src="~/App_Code/DropDownLishWithNen.cs" TagName="DropDownListWithNen" %>

追加してみたのですが、今度は別なエラーが発生で出てクラスファイルにアクセスできないようです。
App_Code外においても、インテリセンスが有効にならないのでやはり動かないことには
かわりません。

ますます不明だ・・・ わかる方がいれば引き続きよろしくお願いします。

−−−−−−−−−−−−−−
エラー 1
ファイル '/webzeem/App_Code/DropDownLishWithNen.cs' は特殊なディレクトリ
'App_Code' 内にありますが、この状況は許可されていません。
C:\Inetpub\wwwroot\testweb\Default11.aspx 3


引用返信 編集キー/
■44406 / inTopicNo.6)  Re[5]: DropDownListを継承したがイベントが取れない
□投稿者/ もりお (138回)-(2009/12/08(Tue) 11:30:58)
No44402 (まささん さん) に返信
> http://msdn.microsoft.com/ja-jp/library/1e9b4c9f.aspx

リンク先ではこんな記述の仕方をしています。
<%@ Register TagPrefix="custom" namespace="Samples.AspNet.VB.Controls" %>

派生クラスに namespace を指定していないようでしたら追加して、同じように記述されてみてはいかがでしょうか。

コントロールはこんな感じになりそうです。
<custom:DropDownLishWithNen ID="..." runat="..."></custom:DropDownLishWithNen>

<ご参考>
Web アプリケーションプロジェクトを用いた場合、ビルドするとツールバーに
カスタムコントロールが追加され、ドラッグアンドドロップで配置することが出来たりします。

Web サイトを用いられている場合、 ClassLibrary プロジェクトをソリューションに追加して
ClassLibrary プロジェクトでカスタムコントロールを作成、ビルドして、
Web サイトの参照に ClassLibrary プロジェクトを追加してやると
ツールバーにカスタムコントロールが追加され、ドラッグアンドドロップで配置できます。
余裕がありましたら、お試しくださいな。

引用返信 編集キー/
■44407 / inTopicNo.7)  Re[5]: DropDownListを継承したがイベントが取れない
□投稿者/ まさる (129回)-(2009/12/08(Tue) 12:03:11)
まさる さんの Web サイト
No44402 (まささん さん) に返信
 <%@ Register TagPrefix="uc2"  src="~/App_Code/DropDownLishWithNen.cs" TagName="DropDownListWithNen" %>
> 
> 追加してみたのですが、今度は別なエラーが発生で出てクラスファイルにアクセスできないようです。
> App_Code外においても、インテリセンスが有効にならないのでやはり動かないことには
> かわりません。
> 
> ますます不明だ・・・ わかる方がいれば引き続きよろしくお願いします。
> 
> −−−−−−−−−−−−−−
> エラー	1	
> ファイル '/webzeem/App_Code/DropDownLishWithNen.cs' は特殊なディレクトリ 
> 'App_Code' 内にありますが、この状況は許可されていません。
> C:\Inetpub\wwwroot\testweb\Default11.aspx	3	
> 
> 

Src属性で指定するのは*.ascxファイルのパスのようです。

http://msdn.microsoft.com/ja-jp/library/c76dd5k1.aspx
--
src
    tagprefix:tagname ペアに関連付けられる宣言 ASP.NET ユーザー コントロールファイルの場所 (相対パスまたは絶対パス)。
tagname
    クラスと関連付ける任意のエイリアス。この属性は、ユーザー コントロールにのみ使用されます。
--

今回はApp_Codeフォルダに配置したクラスファイルを使用するので、

1.クラスファイルに名前空間をつける

2.@RegisterディレクティブはNamespace属性とTagprefix属性のみ指定する。

<%@ Register Namespace="MyNameSpace" TagPrefix="myctrl" %>

という手順でいけるはずです。

引用返信 編集キー/
■44410 / inTopicNo.8)  Re[6]: DropDownListを継承したがイベントが取れない
□投稿者/ まささん (5回)-(2009/12/08(Tue) 18:37:15)
> <ご参考>
> Web アプリケーションプロジェクトを用いた場合、ビルドするとツールバーに
> カスタムコントロールが追加され、ドラッグアンドドロップで配置することが> 出来たりします。

もりおさん、ありがとうございました。 これも試してみます!

> 今回はApp_Codeフォルダに配置したクラスファイルを使用するので、
> 1.クラスファイルに名前空間をつける
> 2.@RegisterディレクティブはNamespace属性とTagprefix属性のみ指定する。
> <%@ Register Namespace="MyNameSpace" TagPrefix="myctrl" %>
> という手順でいけるはずです。

まさるさん、ありがとうございました。
この通りでまさにうまく行きました。
感謝感激です。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -