Rambler's Top100
Как сделать в ASP C#?
Как сделать подтверждение удаления в DataGrid
Время - деньги!

Time is money!

  Rambler's Top100

   Часто в случае удаления данных необходимо запросить подтверждение действия до отправки данных на сервер. Это делается с помощью javascript. Например для html:
<input type="button" value="Delete" 
		onClick="javascript:confirm('Действительно удалить?');"/>

   Применим эту идею к ASP DataGrid:
<asp:DataGrid id="DataGridWithDeleteConfirm" 
	OnItemDataBound="DataGridWithDeleteConfirm_OnItemDataBound" runat="server">
<columns>
  <asp:templatecolumn>
    <itemtemplate>
      <asp:linkbutton id="DeleteLinkButton" runat="server" 
					text="Delete" CommandName="Delete" />
      <asp:Label id="lblID" runat="server" 
					text="<%# Eval("id")%>" />
      <asp:Label id="lblName" runat="server" 
					text="<%# Eval("name")%>" />
    </itemtemplate>
  </asp:templatecolumn>
</columns>
</asp:datagrid>

  В коде обработчика DataGridWithDeleteConfirm_OnItemDataBound напишем следующее:
protected void DataGridWithDeleteConfirm_OnItemDataBound(object sender, 
						DataGridItemEventArgs e)
  if(e.Item.FindControl("DeleteLinkButton") != null)
  {
    ((LinkButton) e.Item.FindControl("DeleteLinkButton")).Attributes
		.Add("onClick", "return confirm('Действительно удалить?');");
  }
}
  Тогда программа найдет кнопку Delete и добавит к ней javascript обработчик события нажатия, где будет запрошено подтверждение удаления до отправки запроса на сервер.

   Однако есть более быстрый способ: использовать событие asp:Button/asp:LinkButton OnClientClick:
  <asp:linkbutton id="DeleteLinkButton" runat="server" 
	text="Delete" CommandName="Delete" 
	OnClientClick="return confirm('Действительно удалить?');"/>
   Результат будет тот же: при нажатии на кнопку до отправки данных на сервер будет запрошено подтверждение удаления:



ERP системы с открытыми кодами

OpenSource