我有一个Repeater,它的sqlDatasource嵌套在Gridview TemplatedField中.
Repeater的数据源SelectCommand是使用Gridview中Eval的FormatString设置的.
SelectCommand有一个WHERE子句,用于比较字符串.
因为我已经使用了单引号和双引号,所以我无法在sql WHERE子句中分隔字符串.
Repeater的数据源SelectCommand是使用Gridview中Eval的FormatString设置的.
SelectCommand有一个WHERE子句,用于比较字符串.
因为我已经使用了单引号和双引号,所以我无法在sql WHERE子句中分隔字符串.
如何在Eval FormatString中添加单引号?
我尝试过使用’Replace‘.
我尝试过使用’Special Characters‘(… WHERE StringField ='{0}’…)
到目前为止没有运气.我感谢您提供的任何帮助.
<asp:GridView ID="GridView1" runat="server" DataSourceID="DataSource1" DataKeyNames="Foo" AutoGenerateColumns="False" AllowSorting="true" > <Columns> <asp:BoundField datafield="Foo" HeaderText="Foo" SortExpression="Foo" /> <asp:BoundField datafield="Bar" HeaderText="Bar" SortExpression="Bar" /> <asp:TemplateField> <ItemTemplate> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="DataSourcenested"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("Blah") %>'></asp:Label> </ItemTemplate> </asp:Repeater> <asp:sqlDataSource ID="DataSourcenested" runat="server" DataFile="~/App_Data/DatabaseName" SelectCommand='<%# Eval("Bar","SELECT Blah FROM TableName WHERE (StringField = {0})") %>' > </asp:sqlDataSource> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
解决方法
不要忘记.aspx页面只是XML.你可以像往常一样逃避报价.
例如:
<asp:Repeater ID="repeatTheLabel" runat="server"> <ItemTemplate> <asp:Label ID="Label1" Text="<%# Eval("Id","This is item '{0}'.") %>" runat="server" /> </ItemTemplate> <SeparatorTemplate> <br /> </SeparatorTemplate> </asp:Repeater>
当上述表达式是数据绑定时,<%#和%>之间的值.变为:
Eval("Id","This is item '{0}'.")
…当数据绑定带有“Id”属性值为1到5的对象数组时,在HTML页面上生成输出作为输出:
This is item ‘1’. This is item ‘2’. This is item ‘3’. This is item ‘4’. This is item ‘5’.
原文地址:https://www.jb51.cc/aspnet/251563.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。