【ASP.NET コントロール】Webカスタムコントロール

■作成方法

■前提条件
 * すでに、Visual Studioのプロジェクトがあるものとする。

 [1] VS2010 Epressの場合、既存のVSプロジェクトを開いている状態で、[ファイル]-[新しいプロジェクト]-[ASP.NETサーバコントロール]で、ソリューションに「ソリューションに追加」を選択
 [2] ソリューションエクスプローラで、追加したASP.NETサーバコントロールを右クリックして[追加]-[新しい項目]-[Web]-[ASP.NETサーバコントロール]で「追加」押下
 [3] [2]で追加したファイルを実装(詳細は【サンプル】を参照のこと)
 [4] 既存のVSのプロジェクトを右クリックし、[参照の追加]-[プロジェクト]で、[2]で追加したプロジェクトを選択
 [5] 一旦、保存し、リビルド
   => ビルド後、「ツールボックス」に、[2]で追加したプロジェクトとファイルが追加されているはず。

■使用方法

 * 「ツールボックス」から、対象のコントロールを選択し、追加した対象ファイルのデザイン部分にドラッグ&ドロップ(だけ)

サンプル:WebCustomControl1.vb

* 以下のURLで起こった例外に対応するためのカスタムコントロール
http://blogs.yahoo.co.jp/dk521123/26067076.html
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections.Specialized

Public Class WebCustomControl1
    Inherits DropDownList

    Public Overloads Function LoadPostData(postDataKey As String, _
       postCollection As NameValueCollection) As Boolean

        Dim postedValue As String = postCollection(postDataKey)

        If (postedValue Is Nothing AndAlso _
            Me.Items.FindByValue(postedValue) Is Nothing) Then

            Me.Items.Add(postedValue)
            Me.SelectedValue = postedValue

        End If

        Return MyBase.LoadPostData(postDataKey, postCollection)

    End Function

End Class

参考文献

http://handcraft.blogsite.org/ComponentGeek/ShowArticle/5.aspx

■埋め込んだJavaScriptファイルへのリンク

サンプル

Me.Page.ClientScript.RegisterClientScriptInclude("key", "path/script.js")

参考文献

http://codezine.jp/article/detail/321?p=2
http://stackoverflow.com/questions/280201/external-js-file-in-web-user-control