16 de nov. de 2009

LinqDataSource com “Like”

Quando usamos um LinqDataSource em uma GridView do ASP.NET, percebemos que ao colocar uma condição “Where” nele, os operadores disponíveis são:

image

E logo damos falta do “like”, que no LINQ seria algo como o Contais() ou StartsWith().

Mas nós podemos mudar isto manualmente. indo no “.aspx” e escrevendo o seguinte:

<asp:LinqDataSource ID="LinqDataSource1" runat="server"
    ContextTypeName="WebApplication3.DataClasses1DataContext"
    TableName="Administradors" Where="Nome.Contains(@Nome)">
    <WhereParameters>
        <asp:ControlParameter ControlID="TextBox1" Name="Nome" PropertyName="Text"
            Type="String" ConvertEmptyStringToNull="false" />
    </WhereParameters>
</asp:LinqDataSource>

obs: ocorrerá um erro se não configurarmos a propriedade ConvertEmptyStringToNull para false.

E temos um Like com LinqDataSource! :)

1 comentários:

Anônimo disse...

Olá,

Tentei fazer conforme o explicado no post mas não consegui resultado.

Abraço,