Treeview中有很多节点,点击下面的某个节点后(进行回发),滚动条回到开始的位置,又要重新拉回来,很麻烦,如何让它停在选中的节点的位置。
(注:由于节点数量很多,所以当初始只绑定第一层节点,当点击“+”时,再展开对应节点的子目录)
小弟初来咋到!(分数不到)
哪位大哥可以帮帮我啊!
15 个解决方案
#1
设置TopNode
#2
treeview.SelectedNode = treeview.Nodes["名字"];
#3
<ignav:UltraWebTree ID="tvTrenShare" runat="server" Visible="false" Cursor="Hand"
AutoPostBack="True" OnNodeExpanded="tvMenu_NodeExpanded" DefaultImage="" HiliteClass=""
HoverClass="" Indentation="20" Selectable="False" OnNodeChecked="tvMenu_NodeChecked">
<SelectedNodeStyle Cursor="Default" BorderWidth="1px" BorderColor="Navy" BorderStyle="None"
ForeColor="White" BackColor="#316AC5">
<Padding Bottom="2px" Left="2px" Top="2px" Right="2px"></Padding>
</SelectedNodeStyle>
<HoverNodeStyle Cursor="Hand" ForeColor="Brown" BackColor="#E0E0E0"></HoverNodeStyle>
</ignav:UltraWebTree>
我用的是第三方控件,好想没有TopNode的属性
AutoPostBack="True" OnNodeExpanded="tvMenu_NodeExpanded" DefaultImage="" HiliteClass=""
HoverClass="" Indentation="20" Selectable="False" OnNodeChecked="tvMenu_NodeChecked">
<SelectedNodeStyle Cursor="Default" BorderWidth="1px" BorderColor="Navy" BorderStyle="None"
ForeColor="White" BackColor="#316AC5">
<Padding Bottom="2px" Left="2px" Top="2px" Right="2px"></Padding>
</SelectedNodeStyle>
<HoverNodeStyle Cursor="Hand" ForeColor="Brown" BackColor="#E0E0E0"></HoverNodeStyle>
</ignav:UltraWebTree>
我用的是第三方控件,好想没有TopNode的属性
#4
2楼的这个方法 我实验了一下,滚动条还是会回到最上面的
treeview.SelectedNode = treeview.Nodes["名字"];
各为大哥,帮我想想办法啊!谢谢了
treeview.SelectedNode = treeview.Nodes["名字"];
各为大哥,帮我想想办法啊!谢谢了
#5
<asp:Panel ID="panelUser" runat="server" Height="380px" Width="100%" ScrollBars="Auto">
<asp:TreeView ID="tvUser" runat="server" ShowLines="true" CssClass="hooyestreeCss" onclick="SetScrollTop(0,'panelUser','PanelScroll');" OnSelectedNodeChanged="tvUser_SelectedNodeChanged">
<RootNodeStyle ImageUrl="../../Skin/images/sys.gif" />
<ParentNodeStyle ImageUrl="../../Skin/images/User3.gif" />
<LeafNodeStyle ImageUrl="../../Skin/images/User2.gif" />
</asp:TreeView>
<asp:HiddenField ID="PanelScroll" runat="server" />
</asp:Panel>
function SetScrollTop(type, panelId, hiddenId) {
if (type.toString() == "0") {
$("#" + hiddenId).val($("#" + panelId).scrollTop());
}
else {
$("#" + panelId).scrollTop($("#" + hiddenId).val());
$("#" + panelId).scrollTop($("#" + hiddenId).val());
}
}
protected void tvUser_SelectedNodeChanged(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetTyp(), "", "SetScrollTop (1,'panelUser','PanelScroll');", true);
}
<asp:TreeView ID="tvUser" runat="server" ShowLines="true" CssClass="hooyestreeCss" onclick="SetScrollTop(0,'panelUser','PanelScroll');" OnSelectedNodeChanged="tvUser_SelectedNodeChanged">
<RootNodeStyle ImageUrl="../../Skin/images/sys.gif" />
<ParentNodeStyle ImageUrl="../../Skin/images/User3.gif" />
<LeafNodeStyle ImageUrl="../../Skin/images/User2.gif" />
</asp:TreeView>
<asp:HiddenField ID="PanelScroll" runat="server" />
</asp:Panel>
function SetScrollTop(type, panelId, hiddenId) {
if (type.toString() == "0") {
$("#" + hiddenId).val($("#" + panelId).scrollTop());
}
else {
$("#" + panelId).scrollTop($("#" + hiddenId).val());
$("#" + panelId).scrollTop($("#" + hiddenId).val());
}
}
protected void tvUser_SelectedNodeChanged(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetTyp(), "", "SetScrollTop (1,'panelUser','PanelScroll');", true);
}
#6
我就是这样用的,应该没问题
#7
先谢谢了。
我实验一下!
我实验一下!
#8
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
由于我用了AJAX控件,所以滚动条还是会回到最上面,如果不用的话,5楼的方法确实可行!
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
由于我用了AJAX控件,所以滚动条还是会回到最上面,如果不用的话,5楼的方法确实可行!
#9
是updatePanel吗?我也用了啊,可以的
把panel放在updatePanel里面就可以
把panel放在updatePanel里面就可以
#10
随分飘 你好
请问你用了
<asp:PostBackTrigger ControlID="tvUser" />吗?
如果我用了这个也可以的,但是页面就会闪了。也有可能我使用的方法不对。
请问你用了
<asp:PostBackTrigger ControlID="tvUser" />吗?
如果我用了这个也可以的,但是页面就会闪了。也有可能我使用的方法不对。
#11
没有用啊
我这样用的
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
刷新updatepanel我在后台写的
我这样用的
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
刷新updatepanel我在后台写的
#12
”刷新updatepanel我在后台写的 .“
请问在后台是怎么写的啊?
请问在后台是怎么写的啊?
#13
在需要刷新的按钮事件的最后加UpdatePanel1.update();
#14
使用5楼的方法,我在测试的时候,为什么提示“缺少对象”??
#15
js有错误吧,调试下
#1
设置TopNode
#2
treeview.SelectedNode = treeview.Nodes["名字"];
#3
<ignav:UltraWebTree ID="tvTrenShare" runat="server" Visible="false" Cursor="Hand"
AutoPostBack="True" OnNodeExpanded="tvMenu_NodeExpanded" DefaultImage="" HiliteClass=""
HoverClass="" Indentation="20" Selectable="False" OnNodeChecked="tvMenu_NodeChecked">
<SelectedNodeStyle Cursor="Default" BorderWidth="1px" BorderColor="Navy" BorderStyle="None"
ForeColor="White" BackColor="#316AC5">
<Padding Bottom="2px" Left="2px" Top="2px" Right="2px"></Padding>
</SelectedNodeStyle>
<HoverNodeStyle Cursor="Hand" ForeColor="Brown" BackColor="#E0E0E0"></HoverNodeStyle>
</ignav:UltraWebTree>
我用的是第三方控件,好想没有TopNode的属性
AutoPostBack="True" OnNodeExpanded="tvMenu_NodeExpanded" DefaultImage="" HiliteClass=""
HoverClass="" Indentation="20" Selectable="False" OnNodeChecked="tvMenu_NodeChecked">
<SelectedNodeStyle Cursor="Default" BorderWidth="1px" BorderColor="Navy" BorderStyle="None"
ForeColor="White" BackColor="#316AC5">
<Padding Bottom="2px" Left="2px" Top="2px" Right="2px"></Padding>
</SelectedNodeStyle>
<HoverNodeStyle Cursor="Hand" ForeColor="Brown" BackColor="#E0E0E0"></HoverNodeStyle>
</ignav:UltraWebTree>
我用的是第三方控件,好想没有TopNode的属性
#4
2楼的这个方法 我实验了一下,滚动条还是会回到最上面的
treeview.SelectedNode = treeview.Nodes["名字"];
各为大哥,帮我想想办法啊!谢谢了
treeview.SelectedNode = treeview.Nodes["名字"];
各为大哥,帮我想想办法啊!谢谢了
#5
<asp:Panel ID="panelUser" runat="server" Height="380px" Width="100%" ScrollBars="Auto">
<asp:TreeView ID="tvUser" runat="server" ShowLines="true" CssClass="hooyestreeCss" onclick="SetScrollTop(0,'panelUser','PanelScroll');" OnSelectedNodeChanged="tvUser_SelectedNodeChanged">
<RootNodeStyle ImageUrl="../../Skin/images/sys.gif" />
<ParentNodeStyle ImageUrl="../../Skin/images/User3.gif" />
<LeafNodeStyle ImageUrl="../../Skin/images/User2.gif" />
</asp:TreeView>
<asp:HiddenField ID="PanelScroll" runat="server" />
</asp:Panel>
function SetScrollTop(type, panelId, hiddenId) {
if (type.toString() == "0") {
$("#" + hiddenId).val($("#" + panelId).scrollTop());
}
else {
$("#" + panelId).scrollTop($("#" + hiddenId).val());
$("#" + panelId).scrollTop($("#" + hiddenId).val());
}
}
protected void tvUser_SelectedNodeChanged(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetTyp(), "", "SetScrollTop (1,'panelUser','PanelScroll');", true);
}
<asp:TreeView ID="tvUser" runat="server" ShowLines="true" CssClass="hooyestreeCss" onclick="SetScrollTop(0,'panelUser','PanelScroll');" OnSelectedNodeChanged="tvUser_SelectedNodeChanged">
<RootNodeStyle ImageUrl="../../Skin/images/sys.gif" />
<ParentNodeStyle ImageUrl="../../Skin/images/User3.gif" />
<LeafNodeStyle ImageUrl="../../Skin/images/User2.gif" />
</asp:TreeView>
<asp:HiddenField ID="PanelScroll" runat="server" />
</asp:Panel>
function SetScrollTop(type, panelId, hiddenId) {
if (type.toString() == "0") {
$("#" + hiddenId).val($("#" + panelId).scrollTop());
}
else {
$("#" + panelId).scrollTop($("#" + hiddenId).val());
$("#" + panelId).scrollTop($("#" + hiddenId).val());
}
}
protected void tvUser_SelectedNodeChanged(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetTyp(), "", "SetScrollTop (1,'panelUser','PanelScroll');", true);
}
#6
我就是这样用的,应该没问题
#7
先谢谢了。
我实验一下!
我实验一下!
#8
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
由于我用了AJAX控件,所以滚动条还是会回到最上面,如果不用的话,5楼的方法确实可行!
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
由于我用了AJAX控件,所以滚动条还是会回到最上面,如果不用的话,5楼的方法确实可行!
#9
是updatePanel吗?我也用了啊,可以的
把panel放在updatePanel里面就可以
把panel放在updatePanel里面就可以
#10
随分飘 你好
请问你用了
<asp:PostBackTrigger ControlID="tvUser" />吗?
如果我用了这个也可以的,但是页面就会闪了。也有可能我使用的方法不对。
请问你用了
<asp:PostBackTrigger ControlID="tvUser" />吗?
如果我用了这个也可以的,但是页面就会闪了。也有可能我使用的方法不对。
#11
没有用啊
我这样用的
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
刷新updatepanel我在后台写的
我这样用的
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
刷新updatepanel我在后台写的
#12
”刷新updatepanel我在后台写的 .“
请问在后台是怎么写的啊?
请问在后台是怎么写的啊?
#13
在需要刷新的按钮事件的最后加UpdatePanel1.update();
#14
使用5楼的方法,我在测试的时候,为什么提示“缺少对象”??
#15
js有错误吧,调试下