如何让TreeView不用每次点击或者展开都刷新啊? 大家好,我在2.0TreeView在使用中,页面加载时候就把数据库的一些数据添加了进去TreeView中,但是现在有个问题就是每次点击里面的节点,页面都要刷新一次啊,展开的时候也是刷新,有什么办法可以不用老是刷新页面啊?网上找了很久都看得不是很明白,希望大家指点指点,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下ajax组件,安装将TreeView放在ajax组件里面就可以了。 不会吧,我这边也用的是2.0的,怎么从来都没有出现过你说说的问题呢,要实现不刷新可以用AJAX 一般点击上父级节点是不刷新的,如果刷新了,可设置这个节点:node1.SelectAction = TreeNodeSelectAction.Expand;或node1.SelectAction = TreeNodeSelectAction.None; 还有绑定的时候,看看是否放在!IsPostBak里!! 最方便就是 把这个树 放在iframe中... 哦,谢谢大家的回答,那样到底是放在ajax里面好点,还是使用dtreejs的树好点啊,我主要是使用点击后把这个名字赋值给一个textbox就可以了 node1.SelectAction = TreeNodeSelectAction.None; 我觉得JS好 毕竟现在是敲代码,你用JS写应该更有提高 ajax简单.但要配置.js担心浏览器问题.各有利弊.Up 谢谢,用这个node1.SelectAction = TreeNodeSelectAction.None; 写了是不刷新但是也展开不了啊,还有就是我刚刚下载了dtree看了一下,但是我不是很明白,不如我想单击tree的时候发送一个单击动作,把这个点击的值赋值给一个textbox,这样我不是很明白javascript跟C#的语法不知道怎样和在一起啊,谢谢 刚刚安装了ajax,tools里面有很多工具啊,怎样把treeview放在ajax里面就可以啊?不明白。。 用node1.SelectAction = TreeNodeSelectAction.Expand; TreeNode oTN = new TreeNode("ItemText, "Id");oTN.SelectAction = TreeNodeSelectAction.Expand;TV.Nodes.AddAt(i, oTN); TreeView以及GridView等许多控件在2005年微软还没有开发出来asp.net ajax的时候就已经具有ajax功能(当让那个时候是使用客户端回调技术实现的)。随便举个msdn上的例子:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.treeview.enableclientscript.aspx很多东西早在几年前就有了,现在都过时了确还被大多数所不理解,可见asp.net确实不是一个理想的web工具。 另外要注意你设置的服务器端事件。许多控件,如果你没有捕获服务器端事件,asp.net往往就不会回发,而一旦你设置了asp.net才会回发。同时也去看看msdn的示例程序:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.treeview.populatenodesfromclient.aspx treeview是无限级无刷新的,asp.net的许多控件原本也是,而且那些也还都不使用asp.net ajax就可以实现无刷新。只是编程方式跟入门书上的的简单例子不一样,所以入门书就不去讲了,于是似乎知道的人也就少了。你只有自己去读 msdn。 因为它是服务器控件,所以必须是要刷新的。不想刷新的话可以装Ajax控件 放到updatepanel中就行了!http://www.mybuffet.cn 利用 NET内置Ajax无刷新控件<asp:ScriptManager ID="ScriptManager1" runat="server"> <%-- 由这个控件生成--%> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <%-- 将TreeView放到这个容器中--%> <ContentTemplate> <asp:TreeView ID="tv" runat="server"> </asp:TreeView> </ContentTemplate> </asp:UpdatePanel>后台: private void bindTV() { using (SqlConnection con = new SqlConnection()) { con.ConnectionString = "server=.;database=db_job;uid=sa;pwd=sa;"; con.Open(); SqlCommand cmd = new SqlCommand("select * from 学生表",con); SqlDataReader read = cmd.ExecuteReader(); TreeNode root = new TreeNode("学生信息"); while(read.Read()) { TreeNode nName = new TreeNode(); nName.Text = read["id"].ToString(); TreeNode nSex = new TreeNode(); nSex.Text=read["name"].ToString(); nName.ChildNodes.Add(nSex); root.ChildNodes.Add(nName); } tv.Nodes.Add(root); } } 可以用vs里面的treeview控件啊、、 是不用每次都刷新吧、、 ggwoai兄台好像说得比较清楚点啊,自己试了下但是记过在源代码把那些代码复制过去了,在回到设计视图的时候显示创建控件时出错-scriptmamager1未知的服务器标记"asp:scriptmamager"创建控件时出错-updatepanel1未知的服务器标记"asp:updatepanel"我好像已经安装了ajax一堆控件在左边啦,奇怪???????????????? 55555555555555555555555555555555555555555555555555555还是刷新个不停,再加分,200分另外一贴求助Dtree用法,看了还是用JavaScript 树好了,谢谢大家http://topic.csdn.net/u/20091227/12/342e82be-5402-40ec-88b9-933b50128f7e.html 这样做的话。。我右边的greeview的数据出不来啊 。。greeview的数据时根据点击treeview的字节点获得的 谁能解释一下?谢谢啦! 关于性能的问题 如何做一个购物车 带参数的sql语句也可以多态么 关于access 一个关于算法的问题. dropdownlist怎样跟数据库表的字段绑定? 提2个问题,郁闷了一下午晚上都没有睡好!进者有分! asp.net 缓存问题 有关编译控件的问题???? 【请教】如何在前台获取 gridview 模板列 隐藏控件的值 大侠们SQLServer2005创建不了数据源怎么解决?
如果刷新了,可设置这个节点:
node1.SelectAction = TreeNodeSelectAction.Expand;
或
node1.SelectAction = TreeNodeSelectAction.None;
各有利弊.
Up
还有就是我刚刚下载了dtree看了一下,但是我不是很明白,不如我想单击tree的时候发送一个单击动作,把这个点击的值赋值给一个textbox,这样我不是很明白javascript跟C#的语法不知道怎样和在一起啊,谢谢
node1.SelectAction = TreeNodeSelectAction.Expand;
oTN.SelectAction = TreeNodeSelectAction.Expand;
TV.Nodes.AddAt(i, oTN);
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <%-- 将TreeView放到这个容器中--%>
<ContentTemplate>
<asp:TreeView ID="tv" runat="server">
</asp:TreeView>
</ContentTemplate>
</asp:UpdatePanel>后台:
private void bindTV()
{
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = "server=.;database=db_job;uid=sa;pwd=sa;";
con.Open();
SqlCommand cmd = new SqlCommand("select * from 学生表",con);
SqlDataReader read = cmd.ExecuteReader();
TreeNode root = new TreeNode("学生信息"); while(read.Read())
{
TreeNode nName = new TreeNode();
nName.Text = read["id"].ToString();
TreeNode nSex = new TreeNode();
nSex.Text=read["name"].ToString();
nName.ChildNodes.Add(nSex);
root.ChildNodes.Add(nName); }
tv.Nodes.Add(root);
}
}
未知的服务器标记"asp:scriptmamager"
创建控件时出错-updatepanel1
未知的服务器标记"asp:updatepanel"我好像已经安装了ajax一堆控件在左边啦,奇怪????????????????
这样做的话。。我右边的greeview的数据出不来啊 。。greeview的数据时根据点击treeview的字节点获得的