2008-09-29 2 views
0

Я хотел бы подписаться на событие ItemCommand списка переупорядочения, который у меня есть на моей странице. Передний конец выглядит следующим образом ...AJAX.NET Подписаться на переупорядочивание ItemCommand или DeleteCommand?

<cc1:ReorderList id="ReorderList1" runat="server" CssClass="Sortables" Width="400" OnItemReorder="ReorderList1_ItemReorder" OnItemCommand="ReorderList1_ItemCommand"> 
... 
<asp:ImageButton ID="btnDelete" runat="server" ImageUrl="delete.jpg" CommandName="delete" CssClass="playClip" /> 
... 
</cc1:ReorderList> 

на заднем конце у меня есть это на Page_Load

ReorderList1.ItemCommand += new EventHandler<AjaxControlToolkit.ReorderListCommandEventArgs>(ReorderList1_ItemCommand); 

и эта функция определена

protected void ReorderList1_ItemCommand(object sender, AjaxControlToolkit.ReorderListCommandEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      if (e.CommandName == "delete") 
      { 
       //do something here that deletes the list item 
      } 
     } 
    } 

Несмотря на все мои усилия, хотя, Кажется, я не могу запустить это событие. Как правильно подписаться на эти события в элементе управления ReorderList?

ответ

1

С вашего CommandName="delete" вашего ImageButton вы должны подключаться к событию DeleteCommand вместо ItemCommand.

3

это работает:

<cc2:ReorderList ID="rlEvents" runat="server" AllowReorder="True" CssClass="reorderList" 
     DataKeyField="EventId" DataSourceID="odsEvents" PostBackOnReorder="False" 
     SortOrderField="EventOrder" OnDeleteCommand="rlEvents_DeleteCommand"> 
... 
<asp:ImageButton ID="btnDeleteEvent" runat="server" CommandName="Delete" CommandArgument='<%# Eval("EventId") %>' ImageUrl="~/images/delete.gif" /> 
... 
</cc2:ReorderList> 

код позади:

protected void rlEvents_DeleteCommand(object sender, AjaxControlToolkit.ReorderListCommandEventArgs e) 
{ 
    // delete the item 
    // this will give you the DataKeyField for the current record -> int.Parse(e.CommandArgument.ToString()); 
    //rebind the ReorderList 
} 
Смежные вопросы