Я новый разработчик ASP.NET Web Forms, и я пытаюсь разработать простое приложение с использованием ObjectDataSource с шаблоном репозитория. Сейчас я борюсь с двумя проблемами, связанными с ASP.NET LinkButton внутри элемента управления GridView ASP.NET. Проблемы связаны с событием клика Delete LinkButton, который находится внутри GridView.Как пролить сообщение на событие click ASP.NET LinkButton, находящееся внутри ASP.NET GridView?
Вот мой ASP.NET Код:
<asp:UpdatePanel ID="upView" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblMessage" runat="server" Text="" CssClass="lead text-info"></asp:Label>
<asp:GridView ID="gvProducts" runat="server" AutoGenerateColumns="false"
DataSourceID="odsProduct" DataKeyNames="Id"
CssClass="table table-bordered table-striped">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lbtnEdit"
runat="server"
CssClass="btn btn-info btn-sm"
CommandName="Edit"
Text="Edit" />
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="lbtnUpdate"
runat="server"
CssClass="btn btn-success btn-sm"
CommandName="Update"
Text="Update" />
<%-- --%>
<asp:LinkButton ID="lbtnCancel"
runat="server"
CssClass="btn btn-default btn-sm"
CommandName="Cancel"
Text="Cancel" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<span onclick="return confirm('Are you certain you want to delete this
product?');">
<asp:LinkButton ID="lbtnDelete" runat="server"
CssClass="btn btn-danger btn-sm"
CommandName="Delete">
<span class="glyphicon glyphicon-trash"></span> Delete
</asp:LinkButton>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" ItemStyle-VerticalAlign="Top" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" ItemStyle-VerticalAlign="Top" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" ItemStyle-VerticalAlign="Top" />
<asp:BoundField DataField="UnitPrice" HeaderText="Unit Price" SortExpression="UnitPrice" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsProduct" runat="server"
TypeName="ThinkSafetyFirst_DatabaseFirst.BLL.ProductBL"
DataObjectTypeName="ThinkSafetyFirst_DatabaseFirst.Models.TTSF_Product"
SelectMethod="GetProducts"
DeleteMethod="DeleteProduct"
UpdateMethod="UpdateProduct">
</asp:ObjectDataSource>
</ContentTemplate>
</asp:UpdatePanel>
Я хотел бы показать сообщение Javascript оповещения, как только пользователь нажимает на кнопку Delete. Код есть, как показано выше, но сообщение не появляется, когда пользователь нажимает кнопку, и я не знаю почему.
Функция удаления работает хорошо, но я хотел бы показать сообщение об успешном провале элемента управления меткой ASP.NET, который находится за пределами элемента управления GridView.
Не могли бы вы рассказать мне, как я могу исправить эти два вопроса?
UPDATE:
Как вы можете увидеть в моем коде ASP.NET, я использую ObjectDataSource с Repository Pattern. А вот C# код бизнес-логики для модели продукта:
public void DeleteProduct(TTSF_Product product)
{
try
{
productRepository.DeleteProduct(product);
}
catch (Exception ex)
{
//Include catch blocks for specific exceptions first,
//and handle or log the error as appropriate in each.
//Include a generic catch block like this one last.
throw ex;
}
}
Так как я могу быть в состоянии отобразить сообщение от метода удаления? Обратите внимание, что элемент управления Label ASP.NET находится вне элемента управления GridView.
Спасибо за вашу помощь заранее.
Удалить Аякса UpdatePanel. Вы можете добавить onClientClick = "return confirm (« Удалить? »); на вашу ссылку, чтобы убедиться, что пользователь действительно хочет удалить. – Kami