【发布时间】:2014-01-12 11:35:03
【问题描述】:
尊敬的先生,您好,
我正在生成一个类似于订购系统的购物车,在其中我将产品名称、产品价格和产品数量从 DataTable 添加/绑定到 GridView。
我在 gridview 中添加了一个 ImageButton,仅用于删除选定的行。
我也知道我们不能从动态生成的网格视图中删除一行。所以我在 ImageButton Click 事件中放置了一个代码,该事件从 DataTable 中删除了该行(在整个过程中是 STATIC)并再次将 Data 与 GridView 绑定。
请注意,我已经在“BTN_ADD TO CART_Clicked”中将数据与 gridview 绑定过一次。
这是我的代码 sn-p,
protected void gvorderlist_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
int index = Convert.ToInt32(e.CommandArgument);
DataRow row = dt.Rows[index];
dt.Rows.Remove(row);
gvorderlist.DataSource = dt;
gvorderlist.DataBind();
}
}
而 ASP 代码是,
<asp:GridView ID="gvorderlist" runat="server" CellPadding="4"
ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="5"
onpageindexchanging="gvorderlist_PageIndexChanging"
onrowcommand="gvorderlist_RowCommand">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Cancel Order" ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="ImgbtnCancelOrder" runat="server" CausesValidation="false"
ImageUrl="~/images/cross.PNG" OnClientClick="Javascript: return confirm('Aap Chutiye hai');" CommandName="Delete"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我收到一条错误消息:GridView 'gvorderlist' 触发了未处理的事件 RowDeleting。
任何帮助将不胜感激... 谢谢你
【问题讨论】:
-
一旦你将 DataTable 绑定到 Datagridview,datatable 中的更改会自动反映在 datagridview 中。在按钮单击事件上检索唯一列值并将其从数据表中删除。
-
PrakashVishwakarma,你是想建议我不要在“删除按钮点击事件”中再次绑定 gridview 吗??
-
在imagebutton单击事件中,我检索我要删除的行的行索引然后我执行上述代码......所以如果有任何错误请指导我
-
你试图从 datagridview 中删除一行,这是错误的方法。最好从数据表中删除该行。由于绑定已经完成。数据表中的更改将自动反映在 gridview 中。对不起,延迟回复。由于星期天很忙。