Asp.net-server-controls

提供:Dev Guides
移動先:案内検索

ASP.NET-サーバーコントロール

コントロールは、グラフィカルユーザーインターフェイスの小さな構成要素であり、テキストボックス、ボタン、チェックボックス、リストボックス、ラベル、およびその他の多数のツールが含まれます。 これらのツールを使用して、ユーザーはデータを入力し、選択を行い、好みを示すことができます。

コントロールは、検証、データアクセス、セキュリティ、マスターページの作成、データ操作などの構造的なジョブにも使用されます。

ASP.NETは、次の5種類のWebコントロールを使用します。

  • HTMLコントロール
  • HTMLサーバーコントロール
  • ASP.NETサーバーコントロール
  • ASP.NET Ajax Serverコントロール
  • ユーザーコントロールとカスタムコントロール

ASP.NETサーバーコントロールは、ASP.NETで使用される主要なコントロールです。 これらのコントロールは、次のカテゴリにグループ化できます。

  • 検証コントロール-これらはユーザー入力を検証するために使用され、クライアント側スクリプトを実行することで機能します。
  • データソースコントロール-これらのコントロールは、さまざまなデータソースへのデータバインディングを提供します。
  • データビューコントロール-これらはさまざまなリストおよびテーブルであり、データソースのデータにバインドして表示できます。
  • パーソナライゼーションコントロール-これらは、ユーザー情報に基づいて、ユーザー設定に従ってページをパーソナライズするために使用されます。
  • ログインおよびセキュリティ制御-これらの制御はユーザー認証を提供します。
  • マスターページ-これらのコントロールは、アプリケーション全体で一貫したレイアウトとインターフェイスを提供します。
  • ナビゲーションコントロール-これらのコントロールはナビゲーションに役立ちます。 たとえば、メニュー、ツリービューなど。
  • リッチコントロール-これらのコントロールは特別な機能を実装しています。 たとえば、AdRotator、FileUpload、Calendarコントロール。

サーバーコントロールを使用するための構文は次のとおりです。

<asp:controlType  ID ="ControlID" runat="server" Property1=value1  [Property2=value2]/>

さらに、Visual Studioには次の機能があり、エラーのないコーディングを作成できます。

  • デザインビューでのコントロールのドラッグアンドドロップ
  • プロパティを表示してオートコンプリートするIntelliSense機能
  • プロパティ値を直接設定するプロパティウィンドウ

サーバーコントロールのプロパティ

視覚的な側面を持つASP.NETサーバーコントロールはWebControlクラスから派生し、このクラスのすべてのプロパティ、イベント、およびメソッドを継承します。

WebControlクラス自体および視覚的にレンダリングされないその他のサーバーコントロールは、System.Web.UI.Controlクラスから派生します。 たとえば、PlaceHolderコントロールまたはXMLコントロール。

ASP.Netサーバーコントロールは、WebControlおよびSystem.Web.UI.Controlクラスのすべてのプロパティ、イベント、およびメソッドを継承します。

次の表に、すべてのサーバーコントロールに共通の継承プロパティを示します。

Property Description
AccessKey Pressing this key with the Alt key moves focus to the control.
Attributes It is the collection of arbitrary attributes (for rendering only) that do not correspond to properties on the control.
BackColor Background color.
BindingContainer The control that contains this control’s data binding.
BorderColor Border color.
BorderStyle Border style.
BorderWidth Border width.
CausesValidation Indicates if it causes validation.
ChildControlCreated It indicates whether the server control’s child controls have been created.
ClientID Control ID for HTML markup.
Context The HttpContext object associated with the server control.
Controls Collection of all controls contained within the control.
ControlStyle The style of the Web server control.
CssClass CSS class
DataItemContainer Gets a reference to the naming container if the naming container implements IDataItemContainer.
DataKeysContainer Gets a reference to the naming container if the naming container implements IDataKeysControl.
DesignMode It indicates whether the control is being used on a design surface.
DisabledCssClass Gets or sets the CSS class to apply to the rendered HTML element when the control is disabled.
Enabled Indicates whether the control is grayed out.
EnableTheming Indicates whether theming applies to the control.
EnableViewState Indicates whether the view state of the control is maintained.
Events Gets a list of event handler delegates for the control.
Font Font.
Forecolor Foreground color.
HasAttributes Indicates whether the control has attributes set.
HasChildViewState Indicates whether the current server control’s child controls have any saved view-state settings.
Height Height in pixels or %.
ID Identifier for the control.
IsChildControlStateCleared Indicates whether controls contained within this control have control state.
IsEnabled Gets a value indicating whether the control is enabled.
IsTrackingViewState It indicates whether the server control is saving changes to its view state.
IsViewStateEnabled It indicates whether view state is enabled for this control.
LoadViewStateById It indicates whether the control participates in loading its view state by ID instead of index.
Page Page containing the control.
Parent Parent control.
RenderingCompatibility It specifies the ASP.NET version that the rendered HTML will be compatible with.
Site The container that hosts the current control when rendered on a design surface.
SkinID Gets or sets the skin to apply to the control.
Style Gets a collection of text attributes that will be rendered as a style attribute on the outer tag of the Web server control.
TabIndex Gets or sets the tab index of the Web server control.
TagKey Gets the HtmlTextWriterTag value that corresponds to this Web server control.
TagName Gets the name of the control tag.
TemplateControl The template that contains this control.
TemplateSourceDirectory Gets the virtual directory of the page or control containing this control.
ToolTip Gets or sets the text displayed when the mouse pointer hovers over the web server control.
UniqueID Unique identifier.
ViewState Gets a dictionary of state information that saves and restores the view state of a server control across multiple requests for the same page.
ViewStateIgnoreCase It indicates whether the StateBag object is case-insensitive.
ViewStateMode Gets or sets the view-state mode of this control.
Visible It indicates whether a server control is visible.
Width Gets or sets the width of the Web server control.

サーバーコントロールのメソッド

次の表に、サーバーコントロールのメソッドを示します。

Method Description
AddAttributesToRender Adds HTML attributes and styles that need to be rendered to the specified HtmlTextWriterTag.
AddedControl Called after a child control is added to the Controls collection of the control object.
AddParsedSubObject Notifies the server control that an element, either XML or HTML, was parsed, and adds the element to the server control’s control collection.
ApplyStyleSheetSkin Applies the style properties defined in the page style sheet to the control.
ClearCachedClientID Infrastructure. Sets the cached ClientID value to null.
ClearChildControlState Deletes the control-state information for the server control’s child controls.
ClearChildState Deletes the view-state and control-state information for all the server control’s child controls.
ClearChildViewState Deletes the view-state information for all the server control’s child controls.
CreateChildControls Used in creating child controls.
CreateControlCollection Creates a new ControlCollection object to hold the child controls.
CreateControlStyle Creates the style object that is used to implement all style related properties.
DataBind Binds a data source to the server control and all its child controls.
DataBind(Boolean) Binds a data source to the server control and all its child controls with an option to raise the DataBinding event.
DataBindChildren Binds a data source to the server control’s child controls.
Dispose Enables a server control to perform final clean up before it is released from memory.
EnsureChildControls Determines whether the server control contains child controls. If it does not, it creates child controls.
EnsureID Creates an identifier for controls that do not have an identifier.
Equals(Object) Determines whether the specified object is equal to the current object.
Finalize Allows an object to attempt to free resources and perform other cleanup operations before the object is reclaimed by garbage collection.
FindControl(String) Searches the current naming container for a server control with the specified id parameter.
FindControl(String, Int32) Searches the current naming container for a server control with the specified id and an integer.
Focus Sets input focus to a control.
GetDesignModeState Gets design-time data for a control.
GetType Gets the type of the current instance.
GetUniqueIDRelativeTo Returns the prefixed portion of the UniqueID property of the specified control.
HasControls Determines if the server control contains any child controls.
HasEvents Indicates whether events are registered for the control or any child controls.
IsLiteralContent Determines if the server control holds only literal content.
LoadControlState Restores control-state information.
LoadViewState Restores view-state information.
MapPathSecure Retrieves the physical path that a virtual path, either absolute or relative, maps to.
MemberwiseClone Creates a shallow copy of the current object.
MergeStyle Copies any nonblank elements of the specified style to the web control, but does not overwrite any existing style elements of the control.
OnBubbleEvent Determines whether the event for the server control is passed up the page’s UI server control hierarchy.
OnDataBinding Raises the data binding event.
OnInit Raises the Init event.
OnLoad Raises the Load event.
OnPreRender Raises the PreRender event.
OnUnload Raises the Unload event.
OpenFile Gets a Stream used to read a file.
RemovedControl Called after a child control is removed from the controls collection of the control object.
Render Renders the control to the specified HTML writer.
RenderBeginTag Renders the HTML opening tag of the control to the specified writer.
RenderChildren Outputs the contents of a server control’s children to a provided HtmlTextWriter object, which writes the contents to be rendered on the client.
RenderContents Renders the contents of the control to the specified writer.
RenderControl(HtmlTextWriter) Outputs server control content to a provided HtmlTextWriter object and stores tracing information about the control if tracing is enabled.
RenderEndTag Renders the HTML closing tag of the control into the specified writer.
ResolveAdapter Gets the control adapter responsible for rendering the specified control.
SaveControlState Saves any server control state changes that have occurred since the time the page was posted back to the server.
SaveViewState Saves any state that was modified after the TrackViewState method was invoked.
SetDesignModeState Sets design-time data for a control.
ToString Returns a string that represents the current object.
TrackViewState Causes the control to track changes to its view state so that they can be stored in the object’s view state property.

特定のサーバーコントロール-ツリービューコントロールを見てみましょう。 ツリービューコントロールは、ナビゲーションコントロールの下にあります。 その他のナビゲーションコントロールは、メニューコントロールとSiteMapPathコントロールです。

ページにツリービューコントロールを追加します。 [ノードの編集…​]を選択します タスクから。 ツリービューのノードエディタを使用して、次のように各ノードを編集します。

ASP.NETノードの編集

ノードを作成すると、デザインビューでは次のようになります。

ASP.NETノード編集2

オートフォーマット…​ タスクを使用すると、ツリービューを次のようにフォーマットできます。

ASP.NET AutoFormat

ページにラベルコントロールとテキストボックスコントロールを追加し、それぞれlblmessageとtxtmessageという名前を付けます。

特定のノードが選択されたときに、ラベルコントロールがノードテキストを表示し、テキストボックスがその下にあるすべての子ノードを表示するように、数行のコードを記述します。 ファイルの背後にあるコードは次のようになります。

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

namespace eventdemo {
   public partial class treeviewdemo : System.Web.UI.Page {

      protected void Page_Load(object sender, EventArgs e) {
         txtmessage.Text = " ";
      }

      protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) {

         txtmessage.Text = " ";
         lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text;
         TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes;

         if(childnodes != null) {
            txtmessage.Text = " ";

            foreach (TreeNode t in childnodes) {
               txtmessage.Text += t.Value;
            }
         }
      }
   }
}

ページを実行して、効果を確認します。 ノードを展開および折りたたむことができます。

ASP.NETコントロールノード