页面比较简单,一个DropDownList,一个GridView ,list选中的时候GridView 重新绑定一次,调试结果是这样的,开始绑定都正常, 然后重新选中list page IsPostBack是true,然后执行DdselectType_SelectedIndexChanged里的代码都很正常,执行后又到Page_Load里IsPostBack竟然是false,数据又重新绑定了,结果..... 但是页面显示list选中还是我后来选中的值, 大家帮忙看下,是page生命周期配明白还是问题在哪?
protected void Page_Load(object sender, EventArgs e)
{
string conns = hiddconn.Value;
if (!this.Page.IsPostBack)
{
Bing();
JQGrid1.DataSource = GetDateSet(DdselectType.Text);
JQGrid1.DataBind();
}
}
public void DdselectType_SelectedIndexChanged(object sender, EventArgs e)
{
JQGrid1.DataSource = GetDateSet(DdselectType.Text);
JQGrid1.DataBind();
}
public void Bing()
{
,if(!Ispostback)就表示页面是首次加载,这是很常用的一个判断方式.一个页面只能加载一次,但可以在加载后反复postback.
这个我知道啊 能仔细看下我的问题不
Ispostback 就是判断是否首次加载
@miloss: 说的意思就是Ispostback 只加载一次,你再刷新当然不加载
JQGrid1控件 IsPostBack设置为true了没?
其他的没问题
设置了,就是 执行DdselectType_SelectedIndexChanged Ispostback就变成false 不知道问题下哪
先检查下配置吧,如果有demo,那么先仔细看下demo的实现,感觉是你哪个参数配置错了。
你的代码本身是没问题的,很正常,只是如果能把Page_Load的数据绑定和SelectedIndexChanged事件的数据绑定代码抽象出来就更漂亮了。
还有个可能,就是你的页面是否关闭了ViewState状态?当你关闭ViewState后,可能会有 一些意外,但本质上,跟你的这个问题也是无关的才对。