我在UpdatePanel
内使用树视图层次结构。 ASP.NET代码是:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<ContentTemplate>
<asp:TreeView ID="HierarchyTreeView" runat="server" meta:resourcekey="HierarchyTreeViewResource1" EnableViewState="true"></asp:TreeView>
</ContentTemplate>
</asp:UpdatePanel>
我正在写代码背后的代码
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
HierarchyTreeView.PathSeparator = CaseListPresenter.PathSeparator;
HierarchyTreeView.TreeNodePopulate += new TreeNodeEventHandler(HierarchyTreeView_TreeNodePopulate);
HierarchyTreeView.SelectedNodeChanged += delegate {
Presenter.CancelChangeFlag();
Presenter.SelectedNodeChanged();
CheckPreview();
};
}
如果我在TreeView
UpdatePanel
之外使用OnInit
我的TreeView
效果很好。但是,如果我在UpdatePanel
内使用{{1}},则无法正常工作。我想保持树视图的滚动位置
答案 0 :(得分:0)
TreeView并不完全支持更新面板。
我们可以使用以下脚本维护滚动位置:
<script language="javascript" type="text/javascript">
var IsPostBack = '<%=IsPostBack.ToString() %>';
window.onload = function() {
var strCook = document.cookie;
if (strCook.indexOf("!~") != 0) {
var intS = strCook.indexOf("!~");
var intE = strCook.indexOf("~!");
var strPos = strCook.substring(intS + 2, intE);
if (IsPostBack == 'True') {
document.getElementById("<%=Panel4.ClientID %>").scrollTop = strPos;
}
else {
document.cookie = "yPos=!~0~!";
}
}
}
function SetDivPosition() {
var intY = document.getElementById("<%=Panel4.ClientID %>").scrollTop;
document.title = intY;
document.cookie = "yPos=!~" + intY + "~!";
}
</script>
在你的Panel4上调用setDivPosition()
答案 1 :(得分:0)
现在我终于得到了解决方案..