簡體   English   中英

RowsDeleting事件不會觸發

[英]RowsDeleting event doesn't fire

我有一個帶有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

非常感謝你!

我發現您有一個按鈕whit ID =“ submit”的問題,這在javascript發回函數theForm.submit()中導致錯誤。 更改名稱,然后頁面觸發回發。

從您的Page_Load代碼看來,您僅一次將數據綁定到GridView -在首次加載頁面期間。 進行回發時,服務器將不記得網格中的行,並且無法觸發“刪除”事件的處理。

嘗試移動代碼

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

if (!IsPostback)部分中if (!IsPostback) 在這種情況下,您將使網格每次都被填充。

在所有討論之后, 我發現該表單並不包含所有的asp.net控件 請解決此問題。

同樣,您給表單起一個名字!,只有** run = ** server和** id = ** whatid。 該名稱可能會阻止正確的提交數據。

第二,如果不回發,則問題出在表單,然后一些javascript將其阻止,也許是驗證(我不這樣認為,但您永遠不會知道)。

因此,請檢查表格以開始。 -必須包含asp.net的所有內容。

XML區分大小寫。 ASP.NET也是如此。 確保正確設置了屬性大小寫。

或者,請確保正確設置了DataKey屬性。

如果您的頁面沒有回發,是否有可能導致gridview按鈕引起其他控件的驗證? 嘗試使用causavalidation = false更改帶有模板列的按鈕字段和linkbutton / immage按鈕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM