日期:2014-05-20  浏览次数:20520 次

也不知道这算不算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做不到,只是抛出异常更合理。