[英]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.