用 div 时,展开里面的 treeview ,当 treeview 稍长一点的时候,最下面的节点就展不开......
我的问题跟这个贴子描述的现象一模一样:
http://community.csdn.net/Expert/topic/5136/5136908.xml?temp=.7752497
但是楼主自行解决了,也没说是如何解决的。
他的描述是这样的:
------------------------
treeview 里的数据比较多,用 <div> 控制出现下拉滚动条,进入后第一项是默认的选中项,展开三级,拉滚动条至下端后,点最下面的+展开,但是又跳到最上面去了,请问怎么能够点下面的+是展开,而不是跳到上面?AUTOPOST未FALSE
-------------------------
我再把现角补充一下:展开二级后,treeview 稍长一点了 div 开始出现滚动条了,这时,如果点击第三个节点,这时,整个treeview 又跳到最上面,同时,这个节点也没有被展开
------解决方案--------------------给你个保存DIV位置的解决方案:
string[] divID= "div1 ", "div2};
protected void Page_Load(object sender, System.EventArgs e)
{
RetainScrollPosition(divID);
}
//// <summary>
/// 功能:在页面post时保存屏幕滚动状态;
/// 直接在Page_Load中加入Zeda.CNE.Common.RetainScrollPosition();
/// 不能加在if(!Page.IsPostBack){}内;
/// 加入的两个隐藏域为__SCROLLPOS_TOP和__SCROLLPOS_LEFT
/// </summary>
public static void RetainScrollPosition()
{
System.Web.UI.Page page=(Page)HttpContext.Current.Handler;
page.RegisterHiddenField( "__SCROLLPOS_TOP ", "0 ");
page.RegisterHiddenField( "__SCROLLPOS_LEFT ", "0 ");
string saveScrollPosition = " <script language= 'javascript '> function saveScrollPosition() {{document.forms[0].__SCROLLPOS_TOP.value = {0}.scrollTop;document.forms[0].__SCROLLPOS_LEFT.value = {0}.scrollLeft ;}}{0}.onscroll=saveScrollPosition; </script> ";
string setScrollPosition = " <script language= 'javascript '> function setScrollPosition() {{{0}.scrollTop = '{1} ';{0}.scrollLeft = '{2} ' }}{0}.onload=setScrollPosition; </script> ";
page.RegisterStartupScript( "saveScroll ", string.Format(saveScrollPosition, "window.document.body "));
if (page.IsPostBack)
{
page.RegisterStartupScript( "setScroll ", string.Format(setScrollPosition, "window.document.body ", page.Request.Form[ "__SCROLLPOS_TOP "],page.Request.Form[ "__SCROLLPOS_LEFT "]));
}
}
------解决方案--------------------这个问题我重现不了.
确认一下,点完+后有没有提交?