treeview添加、删除节点后不刷新,急~~~~~~~~搞了一天都没搞出来

Abcsj 2008-07-18 08:50:26
treeview绑定到一个XML文件,
在页面上有一个textbox、添加按钮、删除按钮(在节点上选择了checkbox进行的)
但是我点击添加按钮或删除的时候,treeview有时没有重新绑定,
得点击两次添加或删除treeview才重新绑定
,(但是有时一次就可以),下面是代码:
帮我看看哪里出问题
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = 0;
if (!IsPostBack)
{
ReaderXmlData();
TreeBind();
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (tvnode.CheckedNodes.Count > 0) //对选中checkbox节点添加
{
foreach (TreeNode tn in tvnode.CheckedNodes)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/xml/" + stranalysisid + ".xml"));
StringBuilder XPathStr = new StringBuilder("");
XmlNode node = xmlDoc.SelectSingleNode(tn.ValuePath.Replace("大盘分析如下:", "root"));
XmlElement xesub1 = xmlDoc.CreateElement((tbnode.Text));

((XmlElement)node).AppendChild(xesub1);//添加节点
xmlDoc.Save(Server.MapPath("~/xml/" + stranalysisid + ".xml"));//这时调试的时候XML文件已经改变,但是页面显示的时候并没有刷新 tbnode.Text = "";
}
}
}
TreeBind();
}
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
XmlDataSource1.EnableCaching=false;
CheckTree(tvnode.Nodes[0]);
}
...全文
510 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyizheng945 2011-11-14
  • 打赏
  • 举报
回复
treeview.SelectedNode.Remove();
zhiguo2008 2008-07-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 grearo 的回复:]
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.EnableCaching=false;
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
CheckTree(tvnode.Nodes[0]);
}
[/Quote]

支持。。。小细节
bobui 2008-07-20
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zhiguo2008 的回复:]
引用 19 楼 grearo 的回复:
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.EnableCaching=false;
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
CheckTree(tvnode.Nodes[0]);
}


支持。。。小细节
[/Quote]
你载添加代码里面载绑定一次,不过一点浪费系统资源
  • 打赏
  • 举报
回复
帮你顶
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 grearo 的回复:]
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.EnableCaching=false;
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
CheckTree(tvnode.Nodes[0]);
}
[/Quote]
谢谢楼上的,问题解决了
grearo 2008-07-18
  • 打赏
  • 举报
回复
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.EnableCaching=false;
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
CheckTree(tvnode.Nodes[0]);
}
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
UP......
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 grearo 的回复:]
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.Clear();
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
XmlDataSource1.EnableCaching=false;
CheckTree(tvnode.Nodes[0]);
}
[/Quote]
System.Web.UI.WebControls.XmlDataSource”并不包含“clear”的定义
grearo 2008-07-18
  • 打赏
  • 举报
回复
private void TreeBind()
{
string strxm_name = "~/xml/"+stranalysisid+".xml";//是以根节点来命名的XML
XmlDataSource1.Clear();
XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
XmlDataSource1.EnableCaching=false;
CheckTree(tvnode.Nodes[0]);
}
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
UP
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 Anders_lt 的回复:]
tvnode.Nodes.Clear();
[/Quote]
试了,还是不行
Anders_lt 2008-07-18
  • 打赏
  • 举报
回复
tvnode.Nodes.Clear();
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 grearo 的回复:]
protected void btnAdd_Click(object sender, EventArgs e)
{
if (tvnode.CheckedNodes.Count > 0) //对选中checkbox节点添加
{
foreach (TreeNode tn in tvnode.CheckedNodes)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/xml/" + stranalysisid + ".xml"));
StringBuilder XPathStr…
[/Quote]

还是不行哦
lishijie910123 2008-07-18
  • 打赏
  • 举报
回复
up
grearo 2008-07-18
  • 打赏
  • 举报
回复
protected void btnAdd_Click(object sender, EventArgs e)
{
if (tvnode.CheckedNodes.Count > 0) //对选中checkbox节点添加
{
foreach (TreeNode tn in tvnode.CheckedNodes)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/xml/" + stranalysisid + ".xml"));
StringBuilder XPathStr = new StringBuilder("");
XmlNode node = xmlDoc.SelectSingleNode(tn.ValuePath.Replace("大盘分析如下:", "root"));
XmlElement xesub1 = xmlDoc.CreateElement((tbnode.Text));

((XmlElement)node).AppendChild(xesub1);//添加节点
xmlDoc.Save(Server.MapPath("~/xml/" + stranalysisid + ".xml"));//这时调试的时候XML文件已经改变,但是页面显示的时候并没有刷新 tbnode.Text = "";
}
}
}
TreeBind();
}
private void TreeBind()
{

string strxm_name = "~/xml/"+stranalysisid+".xml?"+DateTime.Now.ToString();//是以根节点来命名的XML
tvnode.Nodes.Clear();

XmlDataSource1.DataFile = strxm_name;
tvnode.DataSource = XmlDataSource1;
tvnode.DataBind();
XmlDataSource1.EnableCaching=false;
CheckTree(tvnode.Nodes[0]);
}
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Abcsj 的回复:]
神啊,帮帮我下
[/Quote]
JeffChung 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhiguo2008 的回复:]
友情帮顶
[/Quote]
Abcsj 2008-07-18
  • 打赏
  • 举报
回复
代码是都执行了
这个页面是通过传参进来的,要是用跳转(加一个随机数)有点不行吧
是绑定出问题吗?
还是跟缓存或其他的有关
zhiguo2008 2008-07-18
  • 打赏
  • 举报
回复
友情帮顶
hy_lihuan 2008-07-18
  • 打赏
  • 举报
回复
1、确认你的代码是否真的执行了?
2、使用跳转试试看能否解决问题,跳转的url上加一个随机数;
加载更多回复(4)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧