ASP.net - 用于过滤 Gridview 的文本框输入
ASP.net - TextBox input to filter Gridview
我有一个 GridView 结合来自 SQL 服务器的数据。
我希望 GridView 仅通过选择电影的第一个字母来显示所有电影和客户的姓名和姓氏。用户将在文本框中输入第一个字母。
我认为<asp:ControlParameter
可以用在这里,但我不知道如何。
这是它的设计:
搜索论坛,我找到了类似这个解决方案,但它给了我一个错误 - 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);
}
}
很高兴提供一些线索,
提前致谢!
我找到了解决方案 - 如何使用 <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>
现在我可以输入电影的第一个字母,它会过滤 GridView 以显示所有租用以这个字母开头的电影的用户。
谢谢
我有一个 GridView 结合来自 SQL 服务器的数据。
我希望 GridView 仅通过选择电影的第一个字母来显示所有电影和客户的姓名和姓氏。用户将在文本框中输入第一个字母。
我认为<asp:ControlParameter
可以用在这里,但我不知道如何。
这是它的设计:
搜索论坛,我找到了类似这个解决方案,但它给了我一个错误 - 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);
}
}
很高兴提供一些线索,
提前致谢!
我找到了解决方案 - 如何使用 <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>
现在我可以输入电影的第一个字母,它会过滤 GridView 以显示所有租用以这个字母开头的电影的用户。
谢谢