【发布时间】:2013-04-15 19:08:04
【问题描述】:
我在插入项目模板视图中有一个下拉列表(很长,超过 100 个项目),用于查看详细信息。我想添加一个文本框和按钮(搜索功能),以便过滤此列表,但出现以下错误。
Eval()、XPath() 和 Bind() 等数据绑定方法只能 在数据绑定控件的上下文中使用。
我创建了两个实体数据源,一个带有 where 子句,另一个没有。当我点击搜索时,后面的代码(按钮单击事件)将数据源切换到带有 where 子句和参数的数据源,但我得到了上面的错误。关于如何进行此操作的任何建议?
Dim aa As DropDownList = DetailsView1.FindControl("DropDownList1")
aa.DataSourceID = ""
aa.DataSource = EmpPersonalInfoLOV1
aa.DataBind()
已编辑 将 aa.DataSource 从字符串更改为 EmpPersonalInfoLOV1(数据源的名称)
编辑 #2 用户要求的更多信息..
数据源 #1 代码
<asp:EntityDataSource ID="EmpPersonalInfoLOV" runat="server"
ConnectionString="name=sspEntities" DefaultContainerName="sspEntities"
EnableFlattening="False" EntitySetName="Employee_Personal_Info"
EntityTypeFilter=""
Select="it.[Emp_id], it.[Employee_No_FastPay], it.[Surname] + ' '+ it.[Firstname] As FullName"
Where="">
</asp:EntityDataSource>
数据源 #2 代码
<asp:EntityDataSource ID="EmpPersonalInfoLOV1" runat="server"
ConnectionString="name=sspEntities" DefaultContainerName="sspEntities"
EnableFlattening="False" EntitySetName="Employee_Personal_Info"
Select="it.[Emp_id], it.[Employee_No_FastPay], it.[Surname] + ' '+ it.[Firstname] As FullName"
Where="it.Surname like '%' + @Name + '%'">
<WhereParameters>
<asp:ControlParameter ControlID="TxtBx1" DbType="String"
DefaultValue="""" Name="Name" PropertyName="SelectedValue" />
</WhereParameters>
</asp:EntityDataSource>
【问题讨论】:
-
我有一段时间没有这样做了,但我相信
DataSource应该是一个对象而不是一个字符串? -
如何创建实体数据源和对象。对不起,我是新手,任何帮助将不胜感激。谢谢
-
您正在将 aa.DataSource 设置为字符串值。您应该将其设置为实际的数据源对象
-
我仍然得到同样的错误..它没有工作
-
你说你有两个实体数据源。我假设 DS2 是您的数据源的 ID,但您想要的是对象,而不仅仅是带有 id 的字符串。所以,去掉引号,它可能会更好。
标签: asp.net vb.net entitydatasource