Repeater とその SqlDatasource が Gridview TemplatedField 内にネストされています。
Repeater のデータソース SelectCommand は、Gridview からの Eval の FormatString を使用して設定されます。
SelectCommand には、文字列を比較するための WHERE 句があります。
すでに一重引用符と二重引用符を使用しているため、SQL WHERE 句で文字列を区切るのに問題があります。
Eval FormatString 内に一重引用符を追加するにはどうすればよいですか?
「置換」を使用してみました。「特殊文字
」
を使用してみました(... 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>