a 为 dropdownlist ,run=server , AutoPostBack=true
b 为 ListBox  ,run=server
用途:1点:当a选中某一个类别时,b就显示该类别(a)下的所有记录,上面可以正常运行,问题在下面2点:当我选中 b 中某一条记录,接着单击修改按钮(目的是想修改选中的记录)
这时 b 的 SelectedIndex 为空,大概是页面提交时 Page_Load 没有把值保留下来请问: 我调试的时候 1 2 两点存在茅盾,要么做到 1点,第2点就不能用.
要么第2点能用,第1点就失效了,怎样才能保留 1 点的同时,可以做好 2点呢?下面的代码:
//第一次载入页面生成 [类别数据] 和 [该类别下的所有数据] 
//每次刷新都能显示不同类别下的记录
private void Page_Load(object sender, System.EventArgs e){
if(!Page.IsPostBack)
 {
   BindKindList();
 }
 BindNewsData(Int32.Parse(a.SelectedItem.Value));//把属于当前类别的记录邦定到b

解决方案 »

  1.   

    Assume you enabled ViewState, you don't need call BindNewsData again in Page_Loadprivate void Page_Load(object sender, System.EventArgs e){
    if(!Page.IsPostBack)
     {
       BindKindList();
     } //BindNewsData(Int32.Parse(a.SelectedItem.Value));//把属于当前类别的记录邦定到b
    }in the selectedIndexChanged event handler for dropdownlist, call
    BindNewsData(Int32.Parse(a.SelectedItem.Value));
      

  2.   

    当用鼠标在b中改变SelectedIndex时,将其记录下来,也就是b 的  selectedIndexChanged 事件中 得到索引,记录到session中 或者viewstate中.在修改按钮中读入你留到session或viewstate中的值。  
    在b加载的时候要判断a是否有记录被选中,如果选中,b的加载是无条件的,如果a没有记录选中,b的加载 是无条件的。
      

  3.   

    解决了..谢谢大家..moonshineidolon(moonshine),不好意思啊.你留言的时候我正在打分....
      

  4.   

    解决了..谢谢大家..moonshineidolon(moonshine),不好意思啊.你留言的时候我正在打分....