老大,我的测试代码如下:
aspx:
************************************
<%@ Page language="c#" Codebehind="WebForm6.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.WebForm6" %>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm6</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">
<!--
function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
document.WebForm6.aaaa.value="";
document.WebForm6.bbbb.value="";
FindCheckedFromNode(TreeView1);
}
function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("Checked",Pc);
}
}
}
function FindCheckedFromNode(node) {
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
//alert('Now searching ' + ': ' + node.getAttribute("Text"));
for (i = 0; i < nodes.length; i++) {
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("Checked"))
AddChecked(cNode);
else
AddUnChecked(cNode);
if (parseInt(cNode.getChildren().length) != 0 ) {
FindCheckedFromNode(cNode);
}
}
}//ア・ヌメサクレオ羈サム。ヨミ
function AddChecked(node) {
//alert(node.getAttribute("Text") + ' is checked');
document.WebForm6.aaaa.value += node.getAttribute("NodeData");
document.WebForm6.aaaa.value += ',';
}
function AddUnChecked(node) {
//alert(node.getAttribute("Text") + ' is unchecked');
document.WebForm6.bbbb.value += node.getAttribute("NodeData");
document.WebForm6.bbbb.value += ',';
}
//-->
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="WebForm6" method="post" runat="server">
<iewc:treeview id="TreeView1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" ExpandLevel="5" EnableViewState="False">
<iewc:TreeNode NodeData="1" CheckBox="True" Text="Node0" Expanded="True">
<iewc:TreeNode NodeData="2" CheckBox="True" Text="Node6" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="3" CheckBox="True" Text="Node7" Expanded="True">
<iewc:TreeNode NodeData="4" CheckBox="True" Text="Node17" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="5" CheckBox="True" Text="Node18" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="6" CheckBox="True" Text="Node8" Expanded="True">
<iewc:TreeNode NodeData="7" CheckBox="True" Text="Node19" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="8" CheckBox="True" Text="Node20" Expanded="True">
<iewc:TreeNode NodeData="9" CheckBox="True" Text="Node21" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="10" CheckBox="True" Text="Node9" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="11" Checked="True" CheckBox="True" Text="Node1" Expanded="True">
<iewc:TreeNode NodeData="12" Checked="True" CheckBox="True" Text="Node10" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="13" Checked="True" CheckBox="True" Text="Node11" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="14" Checked="True" CheckBox="True" Text="Node12" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="15" CheckBox="True" Text="Node2" Expanded="True">
<iewc:TreeNode NodeData="16" CheckBox="True" Text="Node13" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="17" CheckBox="True" Text="Node3" Expanded="True">
<iewc:TreeNode NodeData="18" CheckBox="True" Text="Node14" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="19" CheckBox="True" Text="Node5" Expanded="True">
<iewc:TreeNode NodeData="20" CheckBox="True" Text="Node16" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="21" CheckBox="True" Text="Node4" Expanded="True">
<iewc:TreeNode NodeData="22" CheckBox="True" Text="Node15" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:treeview><INPUT style="Z-INDEX: 103; LEFT: 366px; POSITION: absolute; TOP: 230px" onclick="FindCheckedFromNode(TreeView1)" type="button" value="Button">
<INPUT id="aaaa" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 161px; HEIGHT: 22px" type="text" size="64">
<INPUT id="bbbb" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 361px; HEIGHT: 22px" type="text" size="64">
</form>
</body>
</HTML>
cs:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication2
{
/// <summary>
/// Summary description for WebForm6.
/// </summary>
public class WebForm6 : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
private void Page_Load(object sender, System.EventArgs e)
{
TreeView1.Attributes.Add("oncheck","tree_oncheck(this)");
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
aspx:
************************************
<%@ Page language="c#" Codebehind="WebForm6.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.WebForm6" %>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm6</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">
<!--
function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
document.WebForm6.aaaa.value="";
document.WebForm6.bbbb.value="";
FindCheckedFromNode(TreeView1);
}
function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("Checked",Pc);
}
}
}
function FindCheckedFromNode(node) {
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
//alert('Now searching ' + ': ' + node.getAttribute("Text"));
for (i = 0; i < nodes.length; i++) {
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("Checked"))
AddChecked(cNode);
else
AddUnChecked(cNode);
if (parseInt(cNode.getChildren().length) != 0 ) {
FindCheckedFromNode(cNode);
}
}
}//ア・ヌメサクレオ羈サム。ヨミ
function AddChecked(node) {
//alert(node.getAttribute("Text") + ' is checked');
document.WebForm6.aaaa.value += node.getAttribute("NodeData");
document.WebForm6.aaaa.value += ',';
}
function AddUnChecked(node) {
//alert(node.getAttribute("Text") + ' is unchecked');
document.WebForm6.bbbb.value += node.getAttribute("NodeData");
document.WebForm6.bbbb.value += ',';
}
//-->
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="WebForm6" method="post" runat="server">
<iewc:treeview id="TreeView1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" ExpandLevel="5" EnableViewState="False">
<iewc:TreeNode NodeData="1" CheckBox="True" Text="Node0" Expanded="True">
<iewc:TreeNode NodeData="2" CheckBox="True" Text="Node6" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="3" CheckBox="True" Text="Node7" Expanded="True">
<iewc:TreeNode NodeData="4" CheckBox="True" Text="Node17" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="5" CheckBox="True" Text="Node18" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="6" CheckBox="True" Text="Node8" Expanded="True">
<iewc:TreeNode NodeData="7" CheckBox="True" Text="Node19" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="8" CheckBox="True" Text="Node20" Expanded="True">
<iewc:TreeNode NodeData="9" CheckBox="True" Text="Node21" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="10" CheckBox="True" Text="Node9" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="11" Checked="True" CheckBox="True" Text="Node1" Expanded="True">
<iewc:TreeNode NodeData="12" Checked="True" CheckBox="True" Text="Node10" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="13" Checked="True" CheckBox="True" Text="Node11" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="14" Checked="True" CheckBox="True" Text="Node12" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="15" CheckBox="True" Text="Node2" Expanded="True">
<iewc:TreeNode NodeData="16" CheckBox="True" Text="Node13" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="17" CheckBox="True" Text="Node3" Expanded="True">
<iewc:TreeNode NodeData="18" CheckBox="True" Text="Node14" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="19" CheckBox="True" Text="Node5" Expanded="True">
<iewc:TreeNode NodeData="20" CheckBox="True" Text="Node16" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="21" CheckBox="True" Text="Node4" Expanded="True">
<iewc:TreeNode NodeData="22" CheckBox="True" Text="Node15" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:treeview><INPUT style="Z-INDEX: 103; LEFT: 366px; POSITION: absolute; TOP: 230px" onclick="FindCheckedFromNode(TreeView1)" type="button" value="Button">
<INPUT id="aaaa" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 161px; HEIGHT: 22px" type="text" size="64">
<INPUT id="bbbb" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 361px; HEIGHT: 22px" type="text" size="64">
</form>
</body>
</HTML>
cs:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication2
{
/// <summary>
/// Summary description for WebForm6.
/// </summary>
public class WebForm6 : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
private void Page_Load(object sender, System.EventArgs e)
{
TreeView1.Attributes.Add("oncheck","tree_oncheck(this)");
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
不过初始化时你也可以在客户端设置,这样就不会出问题了
改一下你的程序:<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Delme.WebForm6" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm6</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">
<!--
function initchecknode()
{
var node=TreeView1.getTreeNode("1");
node.setAttribute("Checked","true");
setcheck(node,"true");
}
function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
document.WebForm6.aaaa.value="";
document.WebForm6.bbbb.value="";
FindCheckedFromNode(TreeView1);
}
function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("Checked",Pc);
}
}
}
function FindCheckedFromNode(node) {
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
//alert('Now searching ' + ': ' + node.getAttribute("Text"));
for (i = 0; i < nodes.length; i++) {
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("Checked"))
AddChecked(cNode);
else
AddUnChecked(cNode);
if (parseInt(cNode.getChildren().length) != 0 ) {
FindCheckedFromNode(cNode);
}
}
}//ア・ヌメサクレオ羈サム。ヨミ
function AddChecked(node) {
//alert(node.getAttribute("Text") + ' is checked');
document.WebForm6.aaaa.value += node.getAttribute("NodeData");
document.WebForm6.aaaa.value += ',';
}
function AddUnChecked(node) {
//alert(node.getAttribute("Text") + ' is unchecked');
document.WebForm6.bbbb.value += node.getAttribute("NodeData");
document.WebForm6.bbbb.value += ',';
}
//-->
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" onload="initchecknode()">
<form id="WebForm6" method="post" runat="server">
<iewc:treeview id="TreeView1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" ExpandLevel="5" EnableViewState="False">
<iewc:TreeNode NodeData="1" CheckBox="True" Text="Node0" Expanded="True">
<iewc:TreeNode NodeData="2" CheckBox="True" Text="Node6" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="3" CheckBox="True" Text="Node7" Expanded="True">
<iewc:TreeNode NodeData="4" CheckBox="True" Text="Node17" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="5" CheckBox="True" Text="Node18" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="6" CheckBox="True" Text="Node8" Expanded="True">
<iewc:TreeNode NodeData="7" CheckBox="True" Text="Node19" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="8" CheckBox="True" Text="Node20" Expanded="True">
<iewc:TreeNode NodeData="9" CheckBox="True" Text="Node21" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="10" CheckBox="True" Text="Node9" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="11" CheckBox="True" Text="Node1" Expanded="True">
<iewc:TreeNode NodeData="12" CheckBox="True" Text="Node10" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="13" CheckBox="True" Text="Node11" Expanded="True"></iewc:TreeNode>
<iewc:TreeNode NodeData="14" CheckBox="True" Text="Node12" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="15" CheckBox="True" Text="Node2" Expanded="True">
<iewc:TreeNode NodeData="16" CheckBox="True" Text="Node13" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="17" CheckBox="True" Text="Node3" Expanded="True">
<iewc:TreeNode NodeData="18" CheckBox="True" Text="Node14" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="19" CheckBox="True" Text="Node5" Expanded="True">
<iewc:TreeNode NodeData="20" CheckBox="True" Text="Node16" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
<iewc:TreeNode NodeData="21" CheckBox="True" Text="Node4" Expanded="True">
<iewc:TreeNode NodeData="22" CheckBox="True" Text="Node15" Expanded="True"></iewc:TreeNode>
</iewc:TreeNode>
</iewc:treeview><INPUT style="Z-INDEX: 103; LEFT: 366px; POSITION: absolute; TOP: 230px" onclick="FindCheckedFromNode(TreeView1)" type="button" value="Button">
<INPUT id="aaaa" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 161px; HEIGHT: 22px" type="text" size="64">
<INPUT id="bbbb" style="Z-INDEX: 102; LEFT: 248px; WIDTH: 421px; POSITION: absolute; TOP: 361px; HEIGHT: 22px" type="text" size="64">
</form>
</body>
</HTML>
只不过我单这样的树的程序有六七个,而且全都是用xml在服务器端绑定,修改的工作量巨大,您老是否可以帮我想想其它办法,用客户端javascript来修改已在服务器端绑定的数据
谢谢
结贴!