【发布时间】:2018-03-21 18:06:47
【问题描述】:
当我使用下拉列表的SelectedItem.Text 作为传递给 ObjectDataSource 的值时,会发生此错误。
这是标记
<asp:ObjectDataSource ID="odsInsert" runat="server" SelectMethod="GetStudentInClass2" TypeName="MIHE_MIS.DALS.MidTermExamResultDAL">
<SelectParameters>
<asp:ControlParameter DefaultValue="" ControlID="ddlClasses" Name="classCode" PropertyName="SelectedItem.Text" Type="String" />
<asp:ControlParameter ControlID="ddlSemesters" Name="semesterID" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="ddlSpecialization" Name="specializationID" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
此外,我将Select Class 文本动态添加到下拉列表中。
protected void ddlClasses_DataBound(object sender, EventArgs e)
{
ListItem list = new ListItem("Select Class", "-1");
this.ddlClasses.Items.Insert(0, list);
}
【问题讨论】:
-
您的
PropertyName应该只是Text,而不是属性。活页夹不理解子属性 -
我有 ClassID,它是一个整数作为下拉列表的值
-
我打错了。实际上就是 SelectedItem.Text
-
是的,但您仍然无法绑定到
SelectedValue的子属性。它必须是顶级属性
标签: c# asp.net objectdatasource