ASP.net-过滤Gridview的TextBox输入

问题描述

我有一个GridView和来自sql Server的数据。

我希望GridView通过仅选择电影的首字母来显示所有电影以及客户名称和姓氏。用户将在文本框中输入第一个字母。

我认为<asp:ControlParameter可以在这里使用,但我不知道如何使用。

这里是它的设计:

enter image description here

在论坛上搜索,我发现了类似的解决方案,但它给了我一个错误-System.NullReferenceException

    protected void Button1_Click(object sender,EventArgs e)
{
    if (!String.IsNullOrEmpty(TextBox1.Text))
    {
        (GridView1.DataSource as DataTable).defaultview.RowFilter = string.Format("FirstName LIKE '{0}%'",TextBox1.Text);
    }
}

enter image description here

会为一些线索而高兴,

提前谢谢!

解决方法

我找到了解决方案-如何使用<asp:ControlParameter

<asp:SqlDataSource ID="SqlDataSource_Movie" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" SelectCommand="(long generated code,than)--> WHERE (MovieName LIKE @Text + '%') ORDER BY FirstName ASC">
        <SelectParameters>    <asp:ControlParameter  ControlID="TextBox1" Name="Text"/>   </SelectParameters>
        </asp:SqlDataSource>

现在我可以输入Movie的第一个字母,它将过滤GridView以显示以该字母开头的所有租借电影的用户。

谢谢