【发布时间】:2013-03-02 22:42:50
【问题描述】:
我有一个显示在GridView 中的本地数据库表。在该表中,我有一列名为:“已完成”。
当我第一次显示表格时,我显示它没有完整的记录 (Completed=false)。这是SqlDataSource 选择命令:
"SELECT * FROM [CERecord] WHERE [Completed]='false' ORDER BY [Priority]";
我有一个导致回发的复选框。我想通过勾选/取消勾选来切换已完成记录的显示:
protected void cbShowCompletedRecords_CheckedChanged(object sender, EventArgs e)
{
if (cbShowCompletedRecords.Checked)
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] ORDER BY [Priority]";
else
{
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] WHERE [Completed]='false' ORDER BY [Priority]";
}
}
目前,当我选中该框时,我会获得所有记录。但是当我取消选中它时,GridView 不会更新,即使上面的代码执行。我错过了什么?
【问题讨论】:
-
尝试在
if..else块Grid.Rebind()之后使用Rebind方法 -
数据库中的 Completed 类型是什么?布尔还是字符串?
-
@Ron 你的意思是
DataBind();? -
我已经尝试过
CEDatabaseSource.DataBind(),它并没有改变任何东西。 Completed 是 db 中的 bool(井位)。 -
那么为什么不是你的 where 子句
WHERE [Completed]=0?
标签: c# asp.net gridview checkbox sqldatasource