【发布时间】:2019-04-13 11:58:31
【问题描述】:
我已经到处寻找答案,但我的情况似乎与发布的情况有些不同。我的表单上有一个 Radgrid(购物车)以及其他组件(例如订单摘要)。我希望能够从 radgrid 中删除一行并刷新订单摘要。
到目前为止我所尝试的:
- 使用带有按钮的 Radgrid 的 ItemCommand 来删除行。这删除 该行很好,但不会刷新订单摘要。
- 使用按钮的“onclick”属性删除行并刷新订单摘要。这实际上并没有保存更新的 radgrid(使用 删除的行)。
- 使用 LinkButton 实现了第 1 步。同样的问题。
- 使用按钮的 onclick 属性调用 ItemCommand 并删除该行。这会删除该行,但不会刷新摘要。
我对 VB 相当陌生,我认为正在发生的事情是当使用 ItemCommand 删除行时,它正在更新 radgrid,但表单没有提交。 button_onclick 不应该处理吗?
我做错了什么?任何帮助/建议将不胜感激!
编辑:
这是我的 .aspx 代码:
<asp:LinkButton ID="lnkRemove" OnClick="lnkRemove_Click" OnCommand="CommandEventHandler" CommandName="Delete" runat="server" Text="Remove" />
这是我的代码隐藏:
Protected Sub lnkRemove_Click(ByVal sender As Object, ByVal e As EventArgs)
RefreshGrid() 'Refreshes shopping cart grid
OrderSummary.Refresh() 'Not working
End Sub
Protected Sub CommandEventHandler(ByVal sender As Object, ByVal e As CommandEventArgs)
Dim e1 As GridCommandEventArgs = TryCast(e, GridCommandEventArgs)
If Not e1 Is Nothing Then
grdMain_ItemCommand(sender, e1)
End If
End Sub
Protected Sub grdMain_ItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) Handles grdMain.ItemCommand
Dim table As DataTable = CType(ViewState("dtCart"), DataTable)
If e.CommandName = "Delete" Then
Dim index As Integer = e.Item.ItemIndex
table.Rows(index).Delete()
'more code to remove item(s) from radgrid
End Sub
【问题讨论】:
-
我通过在表单上添加另一个按钮“更新订单”解决了这个问题,然后将页面发布回服务器并刷新订单摘要。我让这种方式变得比本来应该的更复杂。
标签: javascript asp.net vb.net postback radgrid