我有一个在很多地方使用 EntityDataSource 的应用程序。
在 EDS 中,我根据 TextBox 中的用户输入手动构建Where 子句。
我希望用户在查询数据时能够输入“*”(星号)而不是“%”。
有没有像使用 Entity SQL 或 EDS 本身一样简单的方法来进行搜索/替换?我知道我实际上可以在输入数据后更改文本框,但是当用户看到他的文本从 * 更改为 % 时,我认为他不会理解。
我尝试过使用 T-SQL Replace 命令并执行如下操作:
<asp:EntityDataSource ID="EDSParts" runat="server"
ConnectionString="name=TTEntities" DefaultContainerName="TTEntities"
EnableFlattening="False" EntitySetName="Parts"
OrderBy="it.ID DESC"
Where ="(CASE
WHEN (@PartNumber IS NOT NULL) THEN
it.[Number] LIKE REPLACE(@PartNumber, "*", "%")
ELSE
it.[ID] IS NOT NULL
END)">
<WhereParameters>
<asp:ControlParameter Name="PartNumber" Type="String"
ControlID="txtPartNumberQuery" PropertyName="Text" />
</WhereParameters>
</asp:EntityDataSource>
但我收到“服务器标记格式不正确”消息。我在 Entity SQL 参考中找不到等效的“替换”函数......
有任何想法吗?
您可以处理页面回发并修改 txtPartNumberQuery 的内容。 EntityDataSource 只能使用 % (因为它构建 ESQL 查询),因此在执行数据绑定之前,您必须在代码隐藏中将 * 更改为 %。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)