foreach(TreeNode node in treeView1.Nodes)
{
//判断node的checked属性,若为true,得到Node.ID和Node.Text}
{
//判断node的checked属性,若为true,得到Node.ID和Node.Text}
解决方案 »
- 关于VS2010 拉ASCX就假死的问题
- sql2005数据库异地备份
- 我在调试程序的时候出现这样的问题:
- 我相信这里回答是最快的!
- 请教如何生成主从表XML内容?
- 如何实现给ASP.NET编写的软件加密?
- 問一個有關圖片路徑和獲得焦點的問題.急!在線等!!
- 怎么取gridview中模板中的文本框的值
- 请教高手一个问题!紧急!
- 问一个问题,各位老大帮帮忙,IsInRole() 怎么老是false!!!在线等!
- dataGird控件里的<asp:TemplateColumn HeaderText=选项可不可以加图片啊?就是<img src>
- 有没有人用过ASP.NET 2.O的网站管理Web Site Administration Tool? 先20,解决后送100
有xml文件控制!
每次修改数据库!修改xml ,然后由xml生成树!
<iewc:TreeView id="treeCategory" runat="server" TreeNodeSrc="includes/categoryTree.xml" Target="main2"></iewc:TreeView>后台
//改变数据库时就修改xml文件!
public void WriteXML()
{
XmlDocument doc = new XmlDocument();
String xmlStr = CreateXml();
doc.LoadXml(xmlStr);
doc.Save(System.Web.HttpContext.Current.Server.MapPath("/newengnieer/includes/categoryTree.xml") ) ;
}
public string CreateXml( )
{
//读取数据库中的目录信息
String vbcrlf= "\r\n";
String TreeXml = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>" + vbcrlf + "<TREENODES>" + vbcrlf;
DataView dv = getD1Categories() ; String dvStr = ""; for (int i=0;i<=dv.Count - 1;i++)
{
dvStr=dv[i]["productName"].ToString();
TreeXml += " <treenode Text=\"" + dvStr + "\" navigateUrl=\"subCategoryMana.aspx?categoryNum=" + dv[i]["productNum"] + "\" >" + vbcrlf;
TreeXml += getSubTree(dv[i]["productNum"].ToString());
TreeXml += " </treenode>" + vbcrlf;
}
TreeXml += "</TREENODES>";
return TreeXml;
}
public String getSubTree(String parentCategoryNum )
{
String vbCrLf= "\r\n";
DataView dv;
String TreeXml = "";
if (parentCategoryNum.Length ==2)
dv = getD2Categories(parentCategoryNum) ;
else
{
if (parentCategoryNum.Length==5)
dv = getD3Categories(parentCategoryNum) ;
else
return TreeXml;
} String dvstr = ""; for (int i=0;i<=dv.Count - 1;i++)
{
dvstr = Convert.ToString(dv[i]["productName"]).Trim();
TreeXml += " <treenode Text=\"" + dvstr + "\" navigateUrl=\"subCategoryMana.aspx?categoryNum=" + dv[i]["productNum"] + "\" >" + vbCrLf;
TreeXml += getSubTree(dv[i]["productNum"].ToString());
TreeXml += " </treenode>" + vbCrLf;
}
return TreeXml;
}
function GetNode()
{
var choose;
var indexid;
indexid=TreeView1.clickedNodeIndex;
if (TreeView1.getTreeNode(indexid).getAttribute('Checked'))
{
choose=false;
}
else
{
choose=true;
}
TreeView1.getTreeNode(indexid).setAttribute('Checked',choose);
var NodeArray=new Array();
NodeArray=TreeView1.getTreeNode(indexid).getChildren();
for(i=0;i<NodeArray.length;i++)
{
var tempindex=indexid+"."+i;
TreeView1.getTreeNode(indexid).setAttribute('Checked',choose);
}
}
//-->
</script>
foreach(TreeNode node in treeView1.Nodes)
{
//判断node的checked属性,若为true,得到Node.ID和Node.Text}
要如何才能遍历整个Treeview而得到所有TreeNode.checked得TreeNode.ID和
TreeNode.Text?我试了下不行,才能吧root节点打印出来,
是不是我加得方法不对还请老兄帮我看一下。
谢谢!!!!
代码如下:
private void Button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i<this.TreeView1.Nodes.Count;i++)
{
if(this.TreeView1.Nodes[i].Checked==true)
{
this.Response.Write(this.TreeView1.Nodes[i].ID +"--"+this.TreeView1.Nodes[i].Text+"<br>");
}
output_treenode(this.TreeView1.Nodes[i]);
}
}void output_treenode(Microsoft.Web.UI.WebControls.TreeNode ptn)
{
for(int i=0;i<ptn.Nodes.Count;i++)
{
if(ptn.Nodes[i].Checked==true)
{
this.Response.Write(ptn.Nodes[i].ID +"--"+ptn.Nodes[i].Text+"<br>");
}
output_treenode(ptn.Nodes[i]);
}
}