2015-09-18 2 views
1

Я использую asp.net 4.5 с C#. Из повторителя в команде delete. Я хочу показать диалоговое окно подтверждения. Если пользователь нажмет «Да», чем удалить эту запись. Мое удаление логика в «rep_ItemCommand» event.Here мой кодДиалоговое окно подтверждения не регистрирует itemCommand в asp.net

<as:Pager ID="pgeImportedFiles" AutoPostBack="True" EnableViewState="true" runat="server" RepeaterControlID="rptImportFiledata" Visible="false" PageSize="10" DisplayPagerOption="Top"> 
     <RepeaterTemplate> 
      <asp:Repeater ID="rptdata" EnableViewState="true" runat="server" OnItemCommand="rptdata_ItemCommand" > 
       <ItemTemplate>        
         <div > 
          <asp:LinkButton ID="lbnDelete" 
           OnClientClick="javascript:return showConfirmation('Are you sure You want to Delete this File?',this.id);"           
           runat="server" CommandName="Delete" CssClass="EditBtn" CommandArgument='<%# Eval("ID") %>'>Delete</asp:LinkButton> 
         </div>  
       </ItemTemplate> 
      </asp:Repeater> 
     </RepeaterTemplate> 
    </as:Pager> 

protected void rptdata_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    //logic for deleteing 
} 

это Javascript в JS файл и «divDialogMessage1» и «divAlertBox1» определено в этом файле

$(divDialogMessage1).html(confirmationMessage,uniqueID){ 
    var result = false; 
     $(divAlertBox1).dialog({ 
      title: "Confirmation", 
      buttons: { 
       "Yes": function() { 
        __doPostBack(uniqueID); 
        $(this).dialog("close"); 
       }, 
       "No": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
     $(divAlertBox1).dialog('open'); 
     return result;} 

на этом диалоге отображения по щелчку на ссылке удаления и странице также отправьте ответ, если выбрать вариант «да». Но rptdata_ItemCommand не стрельба.

Любое решение для этого?

+0

что вы возвращающиеся в 'return result;' –

+0

здесь отредактируйте мое сообщение.Return false значение в результате – kinjal

ответ

0

Логика для удаления

protected void rptdata_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    //logic for deleteing 
    switch (e.CommandName) 
      { 
       case "edit": 
        MyEditFunction(e.CommandArgument.ToString()); 
        break; 
       case "delete": 
        MyDeleteFunction(Convert.ToInt32(e.CommandArgument)); 
        break; 
      } 
} 

Сообщение подтверждения

Добавить OnItemDataBound = «AddDeleteConfirmation» на ваш ретранслятор разметку и следующий код в коде

protected void AddDeleteConfirmation(Object sender, RepeaterItemEventArgs e) 
     { 
      if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer) 
      { 
       // adds a confirmation javascript to ensure that deleting the template is really what the user wants. 
       ((LinkButton)e.Item.FindControl("lbnDelete")).Attributes["onclick"] = "javascript: return confirm('Are you sure you want to delete this record?')"; 
      } 
     } 
+0

Если я использую простой java-script Confirmation Box My code i также работает. Но я создаю настраиваемую коробку подтверждения с различным стилем и пользовательским интерфейсом. Для этого по диалоговому окну return true или false не может вернуться после нажатия «Да» или «Нет» – kinjal

+0

И при повторном повторе сообщения ItemCommand не вызывается. Только страница Загрузка вызова события. – kinjal

+0

Вы посмотрели на это http://stackoverflow.com/questions/1570329/jquery-dialog-and-asp-net-repeater Очень важно знать весь жизненный цикл страницы, чтобы иметь возможность предложить, где проблема может be – user890255

Смежные вопросы