日期:2014-05-17  浏览次数:20497 次

在Page_Load事件中动态指定SqlDataSource的SelectCommand时,使用FilterExpression没有得到想要的结果
现有一个族谱表family_tree,有id,父亲,姓名等列
在aspx页面中的Page_Load事件中每次加载页面的时候为SqlDataSource1写了SelectCommand = "select * from family_tree", GridView1的DataSourceID="SqlDataSource1"

页面上有个按钮“父亲”,可以设置SqlDataSource的FilterExpression属性为father=当前选中人的父亲id

假设a是b父亲,b是c父亲
现在第一次选中c,点击“父亲”按钮,能够正确显示b,此时再选择b(还没来得及点“父亲按钮”),网页刷新了一下,就直接显示select * from family_tree的结果了(即整个表里的数据都显示出来),而且选中的是GridView里面的第一行

但是如果不在Page_Load里面设置SqlDataSource1的SelectCommand属性,而直接在aspx页面中设置<asp:SqlDataSource ID="SqlDataSource1" SelectCommand="select * from family_tree">,则“父亲”按钮的功能能够正常实现。

请问这是为什么?现在必须要用在Page_Load事件中设置SqlDataSource1的方式来实现,有什么解决方法?
GridView SqlDataSource FilterExpression

------解决方案--------------------
select * from family_tree" 直接写在页面上