Событие ListView ItemCommand не запускается в Firefox - PullRequest
2 голосов
/ 08 июля 2011

Я динамически добавляю кнопки в просмотр списка и использую событие ItemCommand для обработки события нажатия кнопки, используя свойство CommandName для кнопки.Он отлично работает в IE, но когда я пытаюсь в Firefox 5, он попадает на событие загрузки страницы, но не на событие ItemCommand.Есть ли обходной путь для Firefox?

Спасибо!

<asp:ListView ID="lvItems" runat="server" OnItemDataBound="lvItems_ItemDataBound"
            DataSourceID="odsItems" OnItemCommand="lvItems_ItemCommand" DataKeyNames="ItemID"
            OnDataBound="lvItems_DataBound" OnPagePropertiesChanging="lvItems_PagePropertiesChanging">
            <LayoutTemplate>
                            <div id="itemPlaceholder" runat="server">
                            </div>
            </LayoutTemplate>
            <ItemTemplate>
                            <div>
                                            <asp:Label ID="lbl" runat="server">
                                            </asp:Label>
                                            <asp:Button ID="btnAdd" runat="server" CommandName="Add" Text="Add" OnClientClick="this.disabled=true;" />
                            </div>
            </ItemTemplate>
            <EmptyDataTemplate>
                            No items found for the selected filters. Please try again.<br />
                            <br />
            </EmptyDataTemplate>
</asp:ListView>


protected void lvItems_ItemCommand(object sender,ListViewCommandEventArgs e) 
{
if (e.CommandName == "Add")
    {  
        //code here; 
    }
}

1 Ответ

2 голосов
/ 08 июля 2011

Необходимо установить UseSubmitBehaviour на false, поскольку отключение кнопки на стороне клиента отменяет отправку браузерами.Кстати, в IE все точно так же.

<asp:Button ID="btnAdd" runat="server" CommandName="Add" Text="Add"
   UseSubmitBehavior="false" OnClientClick="this.disabled='true';" />

Таким образом ASP.NET добавит необходимый клиентский скрипт для обратной передачи в конце вашего скрипта:

__doPostBack('btnAdd','')
...