日期:2014-05-18  浏览次数:20393 次

高手--------------进-------ListBox问题
今天绑定ListBox出现了一个有趣的问题。
如:这个ListBox正常情况下可以显示3行数据。多余的行需要下拉才可以显示。
现在数据库有这些数据。
11111
22222
33333
44444
55555
66666
当正常绑定以后:
ListBox显示为:
11111
22222
33333(其他的下拉才可以看见)
当选择第2行时,因为设置了AutoPostBack,所以会刷新一次。
刷新后。
ListBox行定位发生了改变。
于是成为了:
22222
33333
44444
-----------也就是说。当选择某一行时候。这一行就会置顶。
为什么会这样?
怎么解决这个问题?
                          --------------------

源:
<asp:ListBox   ID= "ListBox1 "   runat= "server "   AutoPostBack= "True "   Height= "396px "   OnSelectedIndexChanged= "ListBox1_SelectedIndexChanged "
                                                                        Width= "200px "> </asp:ListBox>
CS:
    SqlDataAdapter   da   =   new   SqlDataAdapter(sql,   MyConn);
                DataSet   ds   =   new   DataSet();
                da.Fill(ds,   "class ");
                ListBox1.DataSource   =   ds;
                ListBox1.DataTextField   =   "classname ";
                ListBox1.DataValueField   =   "classid ";
                ListBox1.DataBind();


------解决方案--------------------
ListBox1_SelectedIndexChanged里加
this.ListBox1.SelectedIndex = 0;
------解决方案--------------------
没那个必要的 很浪费资源
你到底是要什么效果?
------解决方案--------------------
没果没什么必要就不用管它了!!!!要不然你就每次刷新的时候指定this.ListBox1.SelectedIndex = 0
------解决方案--------------------
js控制把,会简单一些;不然你就重写listbox