你好尊敬的先生,
我正在生成一个购物车,如订购系统,我在其中添加/绑定从DataTable到GridView的productname,productprice和productquantity。
我已将GridButton添加到gridview,仅用于删除所选行。
我也知道我们无法从动态生成的网格视图中删除行。所以我在ImageButton Click事件中放置了一个代码,该事件从DataTable中删除该行(在整个过程中为STATIC),并再次使用GridView绑定数据。
请注意我已经在我的“BTN_ADD TO CART_Clicked”中使用gridview绑定了数据。
这是我的代码段,
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。
任何帮助将不胜感激...... 谢谢
答案 0 :(得分:1)
错误解释了一切。您需要在标记中定义OnRowDeleting
的事件方法:
<asp:GridView ID="gvorderlist" runat="server" CellPadding="4"
ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="5"
onpageindexchanging="gvorderlist_PageIndexChanging"
onrowcommand="gvorderlist_RowCommand" OnRowDeleting="gvorderlist_RowDeleting">
<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>
在代码中添加一个空方法:
protected void gvorderlist_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
// No need to implement code here
}
答案 1 :(得分:0)
GridView的属性区分大小写,因此将onrowcommand
更改为OnRowCommand
,并查看单击删除按钮时是否会触发。如果没有,您需要明确定义OnRowDeleting。 (也改变onpageindexingchange的大小写)
答案 2 :(得分:0)
提供Command Name=
D
,而不是删除。它会在Row_Deleting
Command Name =
时搜索Delete
个事件。