![](/img/trans.png)
[英]The GridView 'GridView1' fired event RowDeleting which wasn't handled , but there is an event
[英]The GridView 'OrdersGridView' fired event RowDeleting which wasn't handled
我一遍又一遍地得到這個錯誤。
將數據加載到GridView中可以正常工作,但是當我想刪除一行時,我收到了該錯誤。
<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted">
<Columns>
<asp:TemplateField HeaderText="Product Name">
<ItemTemplate>
<asp:HiddenField runat="server" ID="HiddenField1" Value='<%#Eval("oid")%>'></asp:HiddenField>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="titel" HeaderText="Name" />
<asp:BoundField DataField="oid" HeaderText="Itemno" />
<asp:BoundField DataField="prijs" HeaderText="Price" />
<asp:CommandField ButtonType="Link" CausesValidation="false" HeaderText="Update" ShowDeleteButton="True" />
<asp:BoundField DataField="prijs" HeaderText="Subtotal" />
</Columns>
</asp:GridView>
C#codebehind - 我並沒有真正刪除數據庫中的行,但這是一個測試:
protected void OrdersGridView_RowDeleted(object sender, System.Web.UI.WebControls.GridViewDeletedEventArgs e)
{
if (e.Exception != null)
{
lblStatus.Text = e.Exception.ToString();
}
else
{
string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value;
lblStatus.Text = sValue;
}
}
但點擊后,我得到一個bigass黃頁,下一個錯誤:
GridView的'OrdersGridView'觸發了未處理的事件RowDeleting。
刪除按鈕,甚至是刪除了CommandName的GridView中的常規按鈕,將自動嘗試觸發OnRowDeleting。 您可以添加它以使事情變得愉快,但是沒有它做任何事情,因此它不會影響刪除的行為。
您可以將OnRowDeleting添加到GridView:
<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted" OnRowDeleting="OrdersGridView_RowDeleting">
然后在你的CodeBehind中添加:
void OrdersGridView_RowDeleting (object sender, GridViewDeleteEventArgs e)
{
}
將您的行命令名稱從刪除更改為任何其他類似deleterecord
看起來您正在處理“onrowdeleted”事件,而不是“RowDeleting”事件
在你的標記中,更改:onrowdeleted =“OrdersGridView_RowDeleted”
to RowDeleting =“OrdersGridView_RowDeleting”
查看此事件的文檔:您還將看到您的處理程序的簽名需要更改: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.onrowdeleting.aspx你的新處理程序看起來像這樣:
protected void OrdersGridView_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e) {
if (e.Exception != null) {
lblStatus.Text = e.Exception.ToString();
}
else
{
string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value; lblStatus.Text = sValue;
}
}
發生RowDeleting事件,然后是onrowdeleted事件。 RowDeleting可能會讓您取消活動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.