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

Page_Load事件的数据源和Button_Click事件的数据源先后顺序
今天遇到一个很奇怪的问题,在页面放置一个ASPXGridView、Textbox、Button 和一个 SQLDatasorce。
Page_Load的!IsPostBack里绑定ASPXGridView的数据源为SQLDatasorce。

页面第一次载入时所有功能都正常,主要想使用ASPXGridView的FocusedRowChanged事件,就是鼠标点击一行,然后这行内容填充到页面的另一个控件里。

然后设置查询条件,点击Button后,在Button_Click事件里重新设置了SqlDatasorce的查询语句,这时页面上的ASPXGridView数据也显示正常,但是ASPXGridView的FocusedRowChanged功能出现问题了,鼠标选择的第一行内容实际是没进项查询前的第一行内容,选择第二行,显示的也是没进行查询前的第二行数据。奇怪,ASPXGridView显示正常,但FocusedRowChanged事件读取的内容却不是这次查询后的新内容,而是之前没进行查询默认显示的内容。

但把Button_Click事件里重新查询数据的代码放到Page_Load的IsPostBack里就能正常运行了,这是为什么啊?这样的话Button_Click事件不是没有作用了?Button按钮只是做页面回发功能用?

------解决方案--------------------
你的Button_Click事件代码不会执行FocusedRowChanged事件代码的,反之也一样。事件里面的代码逻辑上可能存在问题。
在FocusedRowChanged事件里面也加上查询条件应该可以修正
------解决方案--------------------
贴代码