【发布时间】:2021-01-03 09:26:36
【问题描述】:
我有一个 GridView 与来自 SQL Server 的数据相结合。
我希望 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);
}
}
很高兴得到一些线索,
提前谢谢你!
【问题讨论】:
-
异常意味着您正在操作的对象之一为空。你有没有通过一步步调试检查是哪个对象导致了这个异常?
-
@MarleneHE 我试过了,但我想不通。它直接跳到上面的行。
-
我的猜测是,由于您在 aspx 页面上使用 SqlDataSource,
GridView1.DataSource as DataTable为 null,因为该代码在数据绑定到 GridView 之前执行。 -
@VDWWD 好的,谢谢,知道如何做我正在搜索的内容吗?
-
由于按钮单击执行回发,您可能希望将数据源放在会话变量中(并在每次回发时更新它)。我认为数据源为空,因此引发错误。
标签: c# asp.net gridview data-binding textbox