Tengo un repetidor y su SqlDatasource anidado dentro de un Gridview TemplatedField.
El origen de datos del repetidor SelectCommand se establece utilizando FormatString de una Eval desde la vista Grid.
El SelectCommand tiene una cláusula WHERE que consiste en comparar una cadena.
Como ya he utilizado las comillas simple y doble, tengo problemas para delimitar la cadena en la cláusula WHERE de SQL.Cómo utilizar comillas simples en cadena de formato Eval
¿Cómo agrego comillas simples dentro de una Eval FormatString?
He intentado con 'Replace'.
He intentado usar 'Special Characters' (... DONDE Stringfield = ' {0} ' ...)
No hubo suerte hasta ahora. Agradezco cualquier ayuda que pueda ofrecer.
<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>
Hola, Aydsman, he intentado usar " y esta técnica no funciona. La página activa 'Mensaje de error del compilador: BC32017: Coma,') ', o se espera una continuación de expresión válida'. Podría estar equivocado, pero creo que el motor de renderizado ASP.NET debe convertirlo en una cotización antes de lo requerido. – Dhaust
Eso es extraño David. El código de la etiqueta que publiqué allí fue probado y funcionó bien. –
Creo que es el hecho de que lo estoy haciendo dentro de una cadena de formato Eval que está causando el problema. ¿Podría ser que Eval esté convirtiendo el '"' en una cotización y luego aparece el motor de representación de ASP.NET y activa el error? No estoy seguro. – Dhaust