我正在尝试使用ASP.NET Web窗体中的ListView和ObjectDataSource创建一个简单的CRUD。我无法在ObjectDataSource中使用ControlParameters来插入数据。
以下是我在aspx文件中定义ObjectDataSource的方法。
<asp:ObjectDataSource ID="ObjectDataSource1"
runat="server"
TypeName="BookModel"
InsertMethod="AddBook"
UpdateMethod="EditBook"
DeleteMethod="DeleteBook"
SelectMethod="GetAllBooks">
<InsertParameters>
<asp:ControlParameter Name="BookName" ControlID="form1$BookName" PropertyName="Text" Type="String" />
<asp:ControlParameter Name="AuthorID" ControlID="form1$AuthorID" PropertyName="Text" Type="Int32" />
<asp:ControlParameter Name="SubjectID" ControlID="form1$SubjectID" PropertyName="Text" Type="Int32" />
<asp:ControlParameter Name="Copies" ControlID="form1$Copies" PropertyName="Text" Type="Int32" />
</InsertParameters>
</asp:ObjectDataSource>
这是我的ListView。
<asp:ListView ID="ListView1"
runat="server"
DataSourceID="ObjectDataSource1"
InsertItemPosition="LastItem"
DataKeyNames="BookID"
>
<ItemTemplate>
<%# Eval("BookID") %>,
<%# Eval("BookName") %>,
<%# Eval("AuthorID") %>,
<%# Eval("SubjectID") %>,
<%# Eval("Copies") %>
<asp:Button ID="Button1" CommandName="Delete" Text="Delete" runat="server" />
<asp:Button ID="Button2" CommandName="Edit" Text="Edit" runat="server" />
<br />
</ItemTemplate>
<InsertItemTemplate>
<br />
Book name: <asp:TextBox ID="BookName" runat="server" Text='<%# Bind("BookName") %>'></asp:TextBox><br />
Subject: <asp:TextBox ID="SubjectID" runat="server" Text='<%# Bind("SubjectID") %>'></asp:TextBox><br />
Author: <asp:TextBox ID="AuthorID" runat="server" Text='<%# Bind("AuthorID") %>'></asp:TextBox><br />
Copies: <asp:TextBox ID="Copies" runat="server" Text='<%# Bind("Copies") %>'></asp:TextBox><br />
<asp:Button ID="SubmitButton" runat="server" Text="Add" CommandName="Insert" />
</InsertItemTemplate>
</asp:ListView>
每当我运行我的应用程序并尝试插入新记录时,我都会收到此错误
无法在ControlParameter'BookName'中找到控件'form1 $ BookName'。
我的ListView和ObjectDataSource包含在相同的表单中,该表单具有id form1。
答案 0 :(得分:0)
我从ObjectDataSource定义中删除了InsertParameters。
<asp:ObjectDataSource ID="ObjectDataSource1"
runat="server"
TypeName="BookModel"
InsertMethod="AddBook"
UpdateMethod="EditBook"
DeleteMethod="DeleteBook"
SelectMethod="GetAllBooks">
</asp:ObjectDataSource>