ControlIDConverter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のコンテナーからコントロール ID のリストを取得する型コンバーターを提供します。
public ref class ControlIDConverter : System::ComponentModel::StringConverter
public class ControlIDConverter : System.ComponentModel.StringConverter
type ControlIDConverter = class
inherit StringConverter
Public Class ControlIDConverter
Inherits StringConverter
- 継承
- 派生
例
次のコード例では、 コントロールの ID をレンダリングするために を必要TypeConverterとするクラスで を使用ControlIDConverterする方法を示します。
DebugInfoControl
は、現在の Web フォームに含まれるコントロールに関する情報を出力する単純なコントロールです。 その ControlID
プロパティは、 をそのプロパティに TypeConverterAttribute 使用する ControlIDConverter として TypeConverter 指定する で装飾されます。 は DebugInfoControl
、 メソッドを Render
オーバーライドして、コントロール内のターゲット コントロールに関する情報を Label 出力します。
namespace Samples.AspNet.CS {
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
[DefaultProperty("ControlID")]
public class DebugInfoControl : Control {
public DebugInfoControl() {
}
public DebugInfoControl(string controlID) {
ControlID = controlID;
}
[DefaultValue(""),
TypeConverter(typeof(ControlIDConverter))]
public string ControlID {
get {
object o = ViewState["ControlID"];
if (o == null)
return String.Empty;
return (string)o;
}
set {
if (ControlID != value) {
ViewState["ControlID"] = value;
}
}
}
protected override void Render(HtmlTextWriter writer) {
Label info = new Label();
if (this.ControlID.Length == 0) {
writer.Write("<Font Color='Red'>No ControlID set.</Font>");
}
Control ctrl = this.FindControl(ControlID);
if (ctrl == null) {
writer.Write("<Font Color='Red'>Could not find control " + ControlID + " in Naming Container.</Font>");
}
else {
writer.Write("<Font Color='Green'>Control " + ControlID + " found.<BR>");
writer.Write("Its Naming Container is: " + ctrl.NamingContainer.ID + "<BR>");
if (ctrl.EnableViewState)
writer.Write("It uses view state to persist its state.<BR>");
if (ctrl.EnableTheming)
writer.Write("It can be assigned a Theme ID.<BR>");
if (ctrl.Visible)
writer.Write("It is visible on the page.<BR>");
else
writer.Write("It is not visible on the page.<BR>");
writer.Write("</Font>");
}
}
}
}
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet.VB
<DefaultProperty("ControlID")> _
Public Class DebugInfoControl
Inherits Control
Public Sub New()
End Sub
Public Sub New(controlID As String)
ControlID = controlID
End Sub
<DefaultValue(""), TypeConverter(GetType(ControlIDConverter))> _
Public Property ControlID() As String
Get
Dim o As Object = ViewState("ControlID")
If o Is Nothing Then
Return String.Empty
End If
Return CStr(o)
End Get
Set
If ControlID <> value Then
ViewState("ControlID") = value
End If
End Set
End Property
Protected Overrides Sub Render(writer As HtmlTextWriter)
Dim info As New Label()
If Me.ControlID.Length = 0 Then
writer.Write("<Font Color='Red'>No ControlID set.</Font>")
End If
Dim ctrl As Control = Me.FindControl(ControlID)
If ctrl Is Nothing Then
writer.Write(("<Font Color='Red'>Could not find control " + ControlID + " in Naming Container.</Font>"))
Else
writer.Write(("<Font Color='Green'>Control " + ControlID + " found.<BR>"))
writer.Write(("Its Naming Container is: " + ctrl.NamingContainer.ID + "<BR>"))
If ctrl.EnableViewState Then
writer.Write("It uses view state to persist its state.<BR>")
End If
If ctrl.EnableTheming Then
writer.Write("It can be assigned a Theme ID.<BR>")
End If
If ctrl.Visible Then
writer.Write("It is visible on the page.<BR>")
Else
writer.Write("It is not visible on the page.<BR>")
End If
writer.Write("</Font>")
End If
End Sub
End Class
End Namespace
次のコード例では、 をコントロールと共AccessDataSourceに Web フォームで使用して、コントロールに関する情報を表示する方法DebugInfoControl
をAccessDataSource示します。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" assembly="Samples.AspNet.CS" %>
<%@Page Language="C#" %>
<!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>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataReader"
datafile="Northwind.mdb"
selectcommand="SELECT OrderID FROM Orders WHERE EmployeeID=2">
</asp:accessdatasource>
<br />
<aspSample:debuginfocontrol
id="DebugInfoControl1"
runat="server"
controlid="AccessDataSource1" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" %>
<!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>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataReader"
datafile="Northwind.mdb"
selectcommand="SELECT OrderID FROM Orders WHERE EmployeeID=2">
</asp:accessdatasource>
<br />
<aspSample:debuginfocontrol
id="DebugInfoControl1"
runat="server"
controlid="AccessDataSource1" />
</form>
</body>
</html>
注釈
クラスは ControlIDConverter クラスから StringConverter 派生し、デザイン時環境のプロパティ グリッド コントロールに表示するためのコントロール ID の一覧を提供します。 クラスはControlIDConverter、 クラスと ValidatedControlConverter クラスの基底クラスAssociatedControlConverterとしても機能します。これは、それぞれ、検証プロパティ属性をサポートする Web コントロールとコントロールの型コンバーターです。
型コンバーターの詳細については、「方法: 型コンバーターまたは一般化された型変換を実装する」を参照してください。
コンストラクター
ControlIDConverter() |
ControlIDConverter クラスの新しいインスタンスを初期化します。 |
メソッド
適用対象
こちらもご覧ください
.NET