IWebActionable Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermöglicht WebPart Steuerelementen oder anderen Serversteuerelementen, Sammlungen von Verben zu enthalten.
public interface class IWebActionable
public interface IWebActionable
type IWebActionable = interface
Public Interface IWebActionable
- Abgeleitet
Beispiele
Im folgenden Codebeispiel wird eine einfache Implementierung der IWebActionable Schnittstelle veranschaulicht. Der erste Teil des Codebeispiels zeigt, wie die Schnittstelle in einem Benutzersteuerelement implementiert wird. Das Benutzersteuerelement implementiert die Verbs Eigenschaft, indem zwei benutzerdefinierte Verben erstellt und eine Methode definiert wird, die aufgerufen wird, wenn ein Benutzer auf eines der Verben klickt. Aus Gründen der Einfachheit wird dieselbe Methode für beide Verben verwendet. Die Methode aktualisiert den Wert einer Eigenschaft mit dem Namen VerbCounterClicks. Der Code für die Page_Load Methode greift auf die Verbs Eigenschaft des Steuerelements zu, um die Gesamtanzahl der benutzerdefinierten Verben in der Auflistung anzuzeigen. Diese Anzahl enthält nicht die Standard-Webparts-Verben.
Von Bedeutung
In diesem Beispiel handelt es sich um ein Textfeld, das Benutzereingaben akzeptiert, bei denen es sich um eine potenzielle Sicherheitsrisiken handelt. Standardmäßig überprüfen ASP.NET Webseiten, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Script Exploits Overview.
<%@ control language="C#" classname="AccountUserControl" %>
<%@ implements
interface="System.Web.UI.WebControls.WebParts.IWebActionable" %>
<%@ Import Namespace="System.ComponentModel" %>
<script runat="server">
private WebPartVerbCollection m_Verbs;
[Personalizable]
public string UserName
{
get
{
if (String.IsNullOrEmpty(Textbox1.Text) ||
Textbox1.Text.Length < 0)
return String.Empty;
else
return Textbox1.Text;
}
set
{
Textbox1.Text = value;
}
}
[Personalizable]
public string Phone
{
get
{
if(String.IsNullOrEmpty(Textbox2.Text) ||
Textbox2.Text.Length < 0)
return String.Empty;
else
return Textbox2.Text;
}
set
{
Textbox2.Text = value;
}
}
// The following code handles the verbs.
[Personalizable]
public int VerbCounterClicks
{
get
{
object objVerbCounter = ViewState["VerbCounterClicks"];
int VerbCounterClicks = 0;
if (objVerbCounter != null)
VerbCounterClicks = (int)objVerbCounter;
return VerbCounterClicks;
}
set
{
ViewState["VerbCounterClicks"] = value;
}
}
private void IncrementVerbCounterClicks(object sender,
WebPartEventArgs e)
{
VerbCounterClicks += 1;
Label4.Text = "Custom Verbs Click Count: " +
this.VerbCounterClicks.ToString();
}
void Page_Load(object sender, EventArgs e)
{
Label3.Text = "Custom Verb Count: " +
WebPartManager.GetCurrentWebPartManager(Page).
WebParts[0].Verbs.Count.ToString();
}
// <snippet3>
// This property implements the IWebActionable interface.
WebPartVerbCollection IWebActionable.Verbs
{
get
{
if (m_Verbs == null)
{
ArrayList verbsList = new ArrayList();
WebPartVerb onlyVerb = new WebPartVerb
("customVerb1", new WebPartEventHandler(IncrementVerbCounterClicks));
onlyVerb.Text = "My Verb";
onlyVerb.Description = "VerbTooltip";
onlyVerb.Visible = true;
onlyVerb.Enabled = true;
verbsList.Add(onlyVerb);
WebPartVerb otherVerb = new WebPartVerb
("customVerb2", new WebPartEventHandler(IncrementVerbCounterClicks));
otherVerb.Text = "My other Verb";
otherVerb.Description = "Other VerbTooltip";
otherVerb.Visible = true;
otherVerb.Enabled = true;
verbsList.Add(otherVerb);
m_Verbs = new WebPartVerbCollection(verbsList);
return m_Verbs;
}
return m_Verbs;
}
}
// </snippet3>
</script>
<div>
<asp:label id="Label1" runat="server" AssociatedControlID="Textbox1">
Name</asp:label>
<asp:textbox id="Textbox1" runat="server" />
</div>
<div>
<asp:label id="Label2" runat="server" AssociatedControlID="Textbox2">
Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server" text="Save Form Values" />
</div>
<hr />
<br />
<asp:Label ID="Label3" runat="server" Text="" />
<br />
<asp:Label ID="Label4" runat="server" Text="" />
<%@ control language="vb" classname="AccountUserControlVB" %>
<%@ implements
interface="System.Web.UI.WebControls.WebParts.IWebActionable" %>
<%@ Import Namespace="System.ComponentModel" %>
<script runat="server">
Private m_Verbs As WebPartVerbCollection
<Personalizable()> _
Public Property UserName() As String
Get
If String.IsNullOrEmpty(Textbox1.Text) OrElse _
Textbox1.Text.Length < 0 Then
Return String.Empty
Else
Return Textbox1.Text
End If
End Get
Set(ByVal value As String)
Textbox1.Text = value
End Set
End Property
<Personalizable()> _
Public Property Phone() As String
Get
If String.IsNullOrEmpty(Textbox2.Text) OrElse _
Textbox2.Text.Length < 0 Then
Return String.Empty
Else
Return Textbox2.Text
End If
End Get
Set(ByVal value As String)
Textbox2.Text = value
End Set
End Property
' The following code handles the verbs.
<Personalizable()> _
Public Property VerbCounterClicks() As Integer
Get
Dim objVerbCounter As Object = _
ViewState("VerbCounterClicks")
VerbCounterClicks = 0
If Not (objVerbCounter Is Nothing) Then
VerbCounterClicks = CType(objVerbCounter, Int32)
End If
Return VerbCounterClicks
End Get
Set(ByVal value As Integer)
ViewState("VerbCounterClicks") = value
End Set
End Property
Private Sub IncrementVerbCounterClicks _
(ByVal sender As Object, ByVal e As WebPartEventArgs)
VerbCounterClicks += 1
Label4.Text = "Custom Verbs Click Count: " + _
Me.VerbCounterClicks.ToString()
End Sub
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Label3.Text = "Custom Verb Count: " + _
WebPartManager.GetCurrentWebPartManager(Page). _
WebParts(0).Verbs.Count.ToString()
End Sub
' <snippet3>
' This property implements the IWebActionable interface.
ReadOnly Property Verbs() As WebPartVerbCollection _
Implements IWebActionable.Verbs
Get
If (m_Verbs Is Nothing) Then
Dim verbsList As New ArrayList()
Dim onlyVerb As New WebPartVerb _
("customVerb1", New WebPartEventHandler(AddressOf IncrementVerbCounterClicks))
onlyVerb.Text = "My Verb"
onlyVerb.Description = "VerbTooltip"
onlyVerb.Visible = True
onlyVerb.Enabled = True
verbsList.Add(onlyVerb)
Dim otherVerb As New WebPartVerb _
("customVerb2", New WebPartEventHandler(AddressOf IncrementVerbCounterClicks))
otherVerb.Text = "My other Verb"
otherVerb.Description = "Other VerbTooltip"
otherVerb.Visible = True
otherVerb.Enabled = True
verbsList.Add(otherVerb)
m_Verbs = New WebPartVerbCollection(verbsList)
End If
Return m_Verbs
End Get
End Property
' </snippet3>
</script>
<div>
<asp:label id="Label1" runat="server" AssociatedControlID="Textbox1">
Name</asp:label>
<asp:textbox id="Textbox1" runat="server" />
</div>
<div>
<asp:label id="Label2" runat="server" AssociatedControlID="Textbox2">
Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server" text="Save Form Values" />
</div>
<hr />
<br />
<asp:Label ID="Label3" runat="server" Text="" />
<br />
<asp:Label ID="Label4" runat="server" Text="" />
Der zweite Teil des Codebeispiels ist eine .aspx Seite, auf der das Benutzersteuerelement gehostet wird. Da auf das Steuerelement in einem WebPartZone Steuerelement verwiesen wird, wird zur Laufzeit ASP.NET das Benutzersteuerelement in ein GenericWebPart Steuerelement umbrochen und als WebPart Steuerelement behandelt. Nachdem Sie die Seite in einem Browser geladen haben, beachten Sie, dass die Beschriftung unten im Steuerelement anzeigt, wie viele benutzerdefinierte Verben in der Auflistung enthalten sind, auf die von der Verbs Eigenschaft verwiesen wird. Beachten Sie außerdem, dass eine andere Beschriftung angezeigt wird, wenn Sie auf das Menü "Verben" im Steuerelement klicken und auf eines der Verben klicken, eine andere Beschriftung mit der Gesamtanzahl der Häufigkeit, mit der die benutzerdefinierten Verben geklickt wurden.
<%@ page language="c#" %>
<%@ register tagprefix="uc1"
tagname="AccountUserControl"
src="usercontrolverbcs.ascx"%>
<!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>
Personalizable User Control with IWebPart Properties
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<asp:webpartzone
id="zone1"
runat="server"
headertext="Main"
CloseVerb-Enabled="false">
<zonetemplate>
<uc1:AccountUserControl
runat="server"
id="accountwebpart"
title="Account Form" />
</zonetemplate>
</asp:webpartzone>
</form>
</body>
</html>
<%@ page language="vb" %>
<%@ register tagprefix="uc1"
tagname="AccountUserControlVB"
src="usercontrolverbvb.ascx"%>
<!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>
Personalizable User Control with IWebPart Properties
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<asp:webpartzone
id="zone1"
runat="server"
headertext="Main"
CloseVerb-Enabled="false">
<zonetemplate>
<uc1:AccountUserControlVB
runat="server"
id="accountwebpart"
title="Account Form" />
</zonetemplate>
</asp:webpartzone>
</form>
</body>
</html>
Hinweise
Ein Verb in WebPart Steuerelementen ist eine Aktion, die ein Benutzer auf der Benutzeroberfläche ausführen kann. In der Regel wird ein Verb in der Benutzeroberfläche durch ein klickbares Steuerelement wie eine Schaltfläche, einen Link oder ein Menüelement dargestellt. Der Webpart-Steuerelementsatz stellt Standardverben bereit, die standardmäßig für WebPart Steuerelemente und andere Serversteuerelemente (z. B. benutzerdefinierte steuerelemente, ASP.NET und Benutzersteuerelemente) verfügbar sind, die wie WebPart Steuerelemente in Zonen platziert WebPartZoneBase werden können. Zu den Standardverben gehören "Schließen", "Minimieren", "Wiederherstellen", "Löschen", "Bearbeiten" und "Exportieren".
Sie können auch benutzerdefinierte Verben für die Verwendung mit WebPart und Serversteuerelementen erstellen. Die IWebActionable Schnittstelle mit seiner Verbs Eigenschaft bietet Ihnen eine Möglichkeit, benutzerdefinierte Verben in Ihre Steuerelemente zu integrieren. Die WebPart Klasse implementiert die IWebActionable Schnittstelle und implementiert ihre einzelne Eigenschaft. Um einem Steuerelement, das von der WebPart Klasse erbt, benutzerdefinierte Verben hinzuzufügen, müssen Sie die WebPart.Verbs Eigenschaft überschreiben, einer Auflistung benutzerdefinierte Verben hinzufügen und die Auflistung zurückgeben. Die Auflistung, auf die von der WebPart.Verbs Eigenschaft verwiesen wird, enthält nur benutzerdefinierte Verben. Standardverben sind in dieser Auflistung nicht enthalten. Der Standardwert der WebPart.Verbs Eigenschaft in einem WebPart Steuerelement lautet null, da standardmäßig keine benutzerdefinierten Verben in der Auflistung vorhanden sind.
Das Hinzufügen von benutzerdefinierten Verben zu Serversteuerelementen, die keine WebPart Steuerelemente sind, erfordert einen zusätzlichen Schritt. In diesen Fällen müssen die Steuerelemente auch die IWebActionable Schnittstelle implementieren und die Verbs Eigenschaft implementieren.
Nachdem Sie der Verbs Auflistung benutzerdefinierte Verben hinzugefügt haben, verarbeitet das Webpart-Steuerelement automatisch die anderen Schritte, die zum Erstellen und Rendern der benutzerdefinierten Verben erforderlich sind.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Verbs |
Ruft einen Verweis auf eine Auflistung von benutzerdefinierten WebPartVerb Objekten ab. |