RowsDeleting事件不会触发

时间:2010-04-09 22:47:48

标签: c# asp.net gridview

我有一个带onrowdeleting="SellersGridView_RowsDeleting"开关的gridview。 我的方法是:

protected void SellersGridView_RowsDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string seller = ((Label)SellersGridView.Rows[e.RowIndex].Cells[0].FindControl("TextBoxSeller")).Text;
        BookStore b = new BookStore();
        b.LoadFromXML(Server.MapPath("list.xml"));
        string ISBN = Request.QueryString["ISBN"].ToString();
        int ID = b.BooksList.FindIndex(x => x.ISBN == ISBN);
        Book myBook = b.BooksList[ID];
        myBook.RemoveSeller(seller);

        Response.Redirect("editbook.aspx?ISBN=" + ISBN);
    }

好吧,似乎当我尝试删除任何内容时 - 没有任何反应。我试图将第一行更改为Response.Redirect("foo")只是为了检查事件本身是否被触发,事实证明它没有。我无法理解。

这是我的gridview控件:http://pastebin.com/CKDAMECT 这是我的代码隐藏代码:http://pastebin.com/ShBtwGEu

非常感谢!

5 个答案:

答案 0 :(得分:2)

我找到了 问题你有一个按钮白色ID =“提交”,这导致错误的javascript回发函数theForm.submit()。 更改名称和页面触发器回发。

答案 1 :(得分:0)

在所有谈话之后,我看到表单不包含所有asp.net控件。请解决这个问题。

另外你给表单一个名字!,只有** run = **服务器和** id = ** whatid。 该名称可能会阻止正确的提交数据。

第二个如果不发回火,那么如果没有问题就是表格,那么一些javascript会阻止它开火,也许是验证(我不这么认为,但你永远不知道)。

因此请检查表格以便开始。 - 必须包含asp.net的所有内容。

答案 2 :(得分:0)

XML区分大小写。 ASP.NET也是如此。确保您的属性正确套装。

或者,确保正确设置了DataKey属性。

答案 3 :(得分:0)

如果您的网页没有回发,那么gridview按钮会导致其他控件的验证? 尝试使用模板列更改按钮字段,使用causavalidation = false

更改linkbutton / immage按钮

答案 4 :(得分:-1)

在我的Page_Load代码中,您似乎只是在第一次加载页面时将数据绑定到GridView一次。 当回发提升时,服务器不记得网格中的行,也无法触发删除事件的处理。

尝试移动代码

SellersGridView.DataSource = myBook.Sellers;
SellersGridView.DataBind();

if (!IsPostback)部分出来。在这种情况下,您将每次都填充网格。