也不知道这算不算vs 2005的一个Bug?
请看以下页面的前台代码:
<asp:GridView ID= "LeavewordView " Width= "100% " runat= "server " AutoGenerateColumns= "False " BorderColor= "#3B6BD1 " BorderWidth= "1px " BackColor= "White " CellPadding= "4 " RowDataBound= "LeavewordView_RowDataBound " OnRowDeleting= "LeavewordView_RowDeleting " OnRowCommand= "LeavewordView_RowCommand " CssClass= "GbText " DataKeyNames= "LeavewordID ">
<asp:TemplateField HeaderText= "操作 ">
<ItemTemplate> <a href= 'AddReply.aspx?LeavewordID= <%#DataBinder.Eval(Container.DataItem, "LeavewordID ") %> '> 直接回复 </a>
<asp:ImageButton ID= "DeleteBtn " runat= "server " CommandName= "delete " ImageUrl= "~/Images/delete.gif " AlternateText= "删除该留言 " CommandArgument= ' <%# DataBinder.Eval(Container.DataItem, "LeavewordID ") %> ' OnClientClick= "javascript:return confirm( '确认要删除吗? '); " />
</ItemTemplate> <ItemStyle HorizontalAlign= "Center " /> <HeaderStyle Width= "20% " /> </asp:TemplateField>
这时,后台代码中会有这么一段事件代码:
protected void LeavewordView_RowDeleting(object sender,GridViewDeleteEventArgs e)
{
///
}
虽然该事件代码空空如也也必须保留,如果将前面的OnRowDeleting= "LeavewordView_RowDeleting " 和给出的事件代码一块儿删去,则删除时就会报错,大概意思是说激发时未找到RowDeleting()事件。
这就很奇怪了,明明是空代码,为什么非要摆在那里?Is that one of vs 2005 bugs?
------解决方案--------------------你从窗体的属性中看一下这个事件是否还关联着,估计你是加了这个事件后又想删除,没有把那个关联去掉。
------解决方案--------------------这也没什么不好,有时忘记写了正好给出提醒。
不是MS做不到,只是抛出异常更合理。