微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 如何在Eval格式字符串中使用单引号

我有一个Repeater,它的sqlDatasource嵌套在Gridview TemplatedField中.
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(&quot;Id&quot;,&quot;This is item '{0}'.&quot;) %>" 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 举报,一经查实,本站将立刻删除。

相关推荐