На моей GridView я ассоциируем яваскриптом метод OnClick к linkbuton, который просит, чтобы подтвердить удаление ограниченного ряда:OnClick asp.net событие не произошло после того, как яваскрипт подтверждения в GridView
protected void DeleteRow_Click(object sender, EventArgs e)
{
GridViewRow grdrow = (GridViewRow)((LinkButton)sender).NamingContainer;
using (ShoppingCartActions usersShoppingCart = new ShoppingCartActions())
{
string cartId = usersShoppingCart.GetCartId();
int rowIndex = grdrow.RowIndex;
//int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
string itemId = ((HiddenField)CartList.Rows[rowIndex].FindControl("hiddenEncryptedItemID")).Value;
usersShoppingCart.RemoveItemWithOptionsAndValues(cartId, itemId);
CartList.DataBind();
lblTotal.Text = String.Format("{0:N2}", usersShoppingCart.GetTotal());
//return usersShoppingCart.GetCartItems();
}
}
Для косметической причины я построил мой ItemTemplate так:
<ItemTemplate>
<div class="divItemTotal">
<div>
<asp:Label runat="server" CssClass="totalItem" ID="lblItemTotalPrice" Text='<%#: String.Format("{0:N2}", ((Convert.ToDouble(Item.Quantity)) * Convert.ToDouble(Item.UnitPrice)))%>'></asp:Label>
<asp:Label runat="server" ID="lblCurrency2" Text=" €"></asp:Label></div>
<asp:LinkButton OnClick="DeleteRow_Click" CssClass="removeItem imgRemoveItem" runat="server" ID="DeleteRow"></asp:LinkButton>
</div>
в идеальном мире Javascript метод должен предотвратить страницу, чтобы выполнить обратную передачу и отпустить ее, если подтверждение редактор К сожалению, при нажатии «ОК» ничего не происходит, и метод ASP.net никогда не запускается. Еще более странным при использовании функции javascript метод asp срабатывает только время от времени, и у меня до сих пор нет предположения.
Хорошо, я сделал шаг вперед. Оба метода (ваш и мой) на самом деле работают. Только первая строка удаляется, когда у меня больше одного. Я этого раньше не понимал, потому что я тестировал только один элемент в сетке. – user3713398