求高手指导,我是初学者,忘大家多多关照!感激不尽!
我用GridView自己带的编辑和删除时遇到的错
<asp:GridView ID="NewClass_List" OnRowDeleting="NewClass_List_RowDeleting" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" HorizontalAlign="Center" Width="98%" CellSpacing="1" AutoGenerateColumns="False" DataSourceID="odsNewsClass" AllowPaging="True" DataKeyNames="Id">
<Columns>
<asp:BoundField DataField="Id" ReadOnly="True" HeaderText="新闻类型ID" SortExpression="Id" />
<asp:BoundField DataField="ClassName" HeaderText="新闻类型名称" SortExpression="ClassName" />
<asp:CommandField HeaderText="操作" EditText="修改" ShowDeleteButton="True" ShowEditButton="True" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsNewsClass" runat="server" DataObjectTypeName="Models.NewsClass"
DeleteMethod="DeleteNewsClass" SelectMethod="GetAllNewsClass" TypeName="BLL.NewsClassManager"
UpdateMethod="UpdateNewsClass">
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32" />
</DeleteParameters>
</asp:ObjectDataSource>
我用的是ObjectDataSource, 绑定了删除和修改,查询到所有的方法,为什么删除时报错 说“能找到接受“Models.NewsClass”类型的参数的非泛型方法“DeleteNewsClass”,
当我把DataObjectTypeName="Models.NewsClass"去掉时,修改时则会类似的找不到方法的错
要在项目的 App_Code 活页夹里,写好自己的类、函数,在此删除用的函数里,建立数据库 Connection、下 Delete SQL 后再执行 SqlCommand.ExecuteNoQuery(),才会实际删数据库中的数据。
App_Code 里你的自订类名称 :
BLL.NewsClassManager
App_Code 里你的自订函数名称 :
DeleteNewsClass
给你提个建议,最好不用自带的修改删除方法!
可以自己在代码中定义嘛:
protected void GridView_DEl()
{
}
protected void GridView_Selected()
{
}
去掉DataObjectTypeName="Models.NewsClass"
去掉后你没有设置<UpdateParameters>当然会报错,而删除的时候有<DeleteParameters>所以不会报错。你可以加入<UpdateParameters>,把DataObjectTypeName="Models.NewsClass"删除就好了。