我出現的問題是這樣的:listbox多選情況下滾動總是下在執行了SelectedIndexChanged之後定位到頂部。
我是在使用者控制項中還用了updatepanel,jquery寫的js方法
前台
listbox
<asp:ListBox ID="lbResearcher" runat="server" Width="130px" Rows="12" AutoPostBack="true"<br /> OnSelectedIndexChanged="lbResearcher_SelectedIndexChanged" SelectionMode="Multiple" ToolTip="單擊"<br /> CssClass="uc_lbResearcher" ></asp:ListBox>
js方法:
// 捲軸的選中位置<br /> function ScrollSelectedHeight(allcount, index) {<br /> //捲軸的總高度<br /> var allHeight = $(".uc_lbResearcher")[0].scrollHeight;<br /> //選中項在listbox的中間位置<br /> $(".uc_lbResearcher").scrollTop((index / allcount) * allHeight - $(".uc_lbResearcher").height()/2);</p><p> }<br />
後台代碼
protected void lbResearcher_SelectedIndexChanged(object sender, EventArgs e)<br />{<br /> ///<br /> //後台要處理的功能代碼<br /> ///<br /> //定位捲軸的高度 執行前台js方法<br /> ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "key", "ScrollSelectedHeight('" + lbResearcher.Items.Count + "','" + lbResearcher.SelectedIndex + "');", true);<br />}
我這個方法需要改進,當對選時總是定位到第一個選中項的位置。