ObjectList.ShowItemCommands Ereignis
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.
Tritt ein, bevor die Befehle für ein Element in ObjectList angezeigt werden. Diese API ist veraltet. Informationen zum Entwickeln ASP.NET mobiler Anwendungen finden Sie unter Mobile Apps & Sites mit ASP.NET.
public:
event System::Web::UI::MobileControls::ObjectListShowCommandsEventHandler ^ ShowItemCommands;
public event System.Web.UI.MobileControls.ObjectListShowCommandsEventHandler ShowItemCommands;
member this.ShowItemCommands : System.Web.UI.MobileControls.ObjectListShowCommandsEventHandler
Public Custom Event ShowItemCommands As ObjectListShowCommandsEventHandler
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie das ShowItemCommands -Ereignis verwendet wird, um ein Element aus der ObjectListCommandCollection Detailansicht eines ObjectListzu entfernen. Das zu entfernende Element wird in der Listenansicht ausgewählt.
Hinweis
Im folgenden Codebeispiel wird das Einzeldateicodemodell verwendet. Es funktioniert möglicherweise nicht ordnungsgemäß, wenn es direkt in eine CodeBehind-Datei kopiert wird. Dieses Codebeispiel muss in eine leere Textdatei mit einer .aspx-Erweiterung kopiert werden. Weitere Informationen finden Sie unter ASP.NET Web Forms-Seitencodemodell.
<%@ Page Language="C#"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
//System.Web.UI.MobileControls.ObjectListItem item;
//System.Web.UI.MobileControls.ObjectListItemCollection itemColl;
// Get the persisted array through postbacks.
ArrayList arr = new ArrayList();
public void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Create and fill the array
arr.Add(new Task("Tomorrow's work", "Yes", 1));
arr.Add(new Task("Today's work", "Yes", 1));
arr.Add(new Task("Yesterday's work", "No", 1));
// Persist the array in the Session object
Session["MyArrayList"] = arr;
// Associate and bind array to the
// ObjectList for each postback.
ObjectList1.DataSource = arr;
ObjectList1.LabelField = "TaskName";
ObjectList1.DataBind();
}
}
private void ItemCommand_Click(Object sender,
ObjectListCommandEventArgs e)
{
// Get the array from the Session object
arr = (ArrayList)Session["MyArrayList"];
// Remove selected item from the ObjectLis
int i = ObjectList1.SelectedIndex;
arr.RemoveAt(i);
Session["MyArrayList"] = arr;
// Re-Bind ObjectList to altered ArrayList.
ObjectList1.DataSource = arr;
ObjectList1.LabelField = "TaskName";
ObjectList1.DataBind();
ObjectList1.ViewMode = ObjectListViewMode.List;
}
void ItemCommands_Show(Object sender,
ObjectListShowCommandsEventArgs e)
{
// Check conditions, and add or remove
// commands in the detail view.
if (e.ListItem["Editable"].Equals("No"))
ObjectList1.Commands.RemoveAt(0);
else if (ObjectList1.Commands.Count < 1)
ObjectList1.Commands.Add(new
ObjectListCommand("Delete", "Delete"));
}
private class Task
{
private string _TaskName;
private string _Editable;
private int _Days;
public Task(string TaskName, string Editable, int Days)
{
_TaskName = TaskName;
_Editable = Editable;
_Days = Days;
}
public string TaskName
{ get { return _TaskName; } }
public string Editable
{ get { return _Editable; } }
public int Days
{ get { return _Days; } }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList runat="server" id="ObjectList1"
OnItemCommand="ItemCommand_Click"
OnShowItemCommands="ItemCommands_Show" >
<Command Name="Delete" Text="Delete" />
</mobile:ObjectList>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" />
</mobile:Form>
</body>
</html>
<%@ Page Language="VB"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<script runat="server">
' System.Web.UI.MobileControls.ObjectListItem item
' System.Web.UI.MobileControls.ObjectListItemCollection itemColl
' Get the persisted array through postbacks.
Private arr As New ArrayList()
Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not IsPostBack Then
' Create and fill the array
arr.Add(new Task("Tomorrow's work", "Yes", 1))
arr.Add(new Task("Today's work", "Yes", 1))
arr.Add(new Task("Yesterday's work", "No", 1))
' Persist the array in the Session object
Session("MyArrayList") = arr
' Associate and bind array to the
' ObjectList for each postback.
ObjectList1.DataSource = arr
ObjectList1.LabelField = "TaskName"
ObjectList1.DataBind()
End If
End Sub
Private Sub SelectCommand(ByVal sender As Object, _
ByVal e As ObjectListCommandEventArgs)
' Get the array from the Session object
arr = CType(Session("MyArrayList"), ArrayList)
' Remove selected item from the ObjectLis
Dim i As Integer = ObjectList1.SelectedIndex
arr.RemoveAt(i)
Session("MyArrayList") = arr
' Re-Bind ObjectList to altered ArrayList.
ObjectList1.DataSource = arr
ObjectList1.LabelField = "TaskName"
ObjectList1.DataBind()
ObjectList1.ViewMode = ObjectListViewMode.List
End Sub
Public Sub ShowTaskDetail(ByVal sender As Object, _
ByVal e As ObjectListShowCommandsEventArgs)
' Check conditions, and add or remove
' commands in the detail view.
If e.ListItem("Editable").Equals("No") Then
ObjectList1.Commands.RemoveAt(0)
ElseIf ObjectList1.Commands.Count < 1 Then
ObjectList1.Commands.Add(New ObjectListCommand("Delete", "Delete"))
End If
End Sub
Private Class Task
Private _TaskName As String
Private _Editable As String
Private _Days As Integer
Public Sub New(ByVal TaskName As String, _
ByVal Editable As String, ByVal Days As Integer)
_TaskName = TaskName
_Editable = Editable
_Days = Days
End Sub
Public ReadOnly Property TaskName() As String
Get
Return _TaskName
End Get
End Property
Public ReadOnly Property Editable() As String
Get
Return _Editable
End Get
End Property
Public ReadOnly Property Days() As Integer
Get
Return _Days
End Get
End Property
End Class
</script>
<html xmlns="http:'www.w3.org/1999/xhtml" >
<body>
<mobile:Form runat="server" id="Form1" >
<mobile:ObjectList runat="server" id="ObjectList1"
OnItemCommand="SelectCommand" OnShowItemCommands="ShowTaskDetail" >
<Command Name="Delete" Text="Delete" />
</mobile:ObjectList>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" />
</mobile:Form>
</body>
</html>
Hinweise
Das Ereignisargument enthält einen Verweis auf das Element und die Auflistung von Befehlen. Ein Ereignishandler kann die Auflistung entsprechend dem Element anpassen. Anwendungen können das ShowItemCommands -Ereignis verwenden, um Funktionen bereitzustellen, die elementspezifischen Kontextmenüs entsprechen. Änderungen, die während dieses Ereignisses an der Auflistung von Befehlen vorgenommen wurden, werden nicht beibehalten.
Dieses Ereignis wird aufgerufen, nachdem das ItemSelect Ereignis aufgerufen wurde. Sie können dieses Ereignis verwenden, um andere Aufgaben auszuführen, bevor Sie die Detailansicht anzeigen. Je nach ausgewähltem Element in der Listenansicht können Sie Felder hinzufügen, entfernen oder neu anordnen.