为什么这个FilterParameter不能按预期工作?

时间:2013-05-05 16:44:22

标签: asp.net filter sqldatasource

我有一个包含列的网格视图:idnameaddressphone
还有一个TextBox:NameFilter

我的gridview由SqlDataSource控制器填充。

我需要使用name过滤我的gridview寄存器。

我正在尝试使用'FilterParameters',但我不知道为什么这不起作用。

NameFilter

<asp:TextBox ID="NameFilter" runat="server" Text="1"></asp:TextBox>

的SqlDataSource

    <asp:TextBox ID="NameFilter" runat="server"></asp:TextBox>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:okadConnectionString %>" 
        ProviderName="<%$ ConnectionStrings:okadConnectionString.ProviderName %>" 
        SelectCommand="SELECT * FROM factory">
    </asp:SqlDataSource>

1 个答案:

答案 0 :(得分:1)

使用FilterParameters只需创建SQL参数,但为了使它们可用,您还需要包含FilterExpression

例如,您还需要添加:
FilterExpression="name='{0}'"

参考: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.filterparameters.aspx

备选方案,您可以将<SelectParameters>添加为

<SelectParameters>
     <asp:ControlParameter ControlID="NameFilter" Name="name"
          PropertyName="Text" Type="String" />
</SelectParameters>

并使用:SelectCommand = "SELECT * FROM factory WHERE name=@name"