<script language="javascript">
var listID_checked = new Array; //选中的ID数组
var listID_unchecked = new Array; //没有选中的ID数组
//function for page_onload,this function for CHECKBOX which is checked mask checked!
function forChecked()
{
for(var i=0;i<9;i++)
{
var node=TreeView1.getTreeNode(i.toString());
writeIDchecked(node);
}
}
//write checked into CheckBox
function writeIDchecked(node)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
node.setAttribute("Checked","false");
if(boolvarl(node.getAttribute("ID")))
{
node.setAttribute("Checked","true");
}
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
cNode.setAttribute("Checked","false");
if(boolvarl(cNode.getAttribute("ID")))
{
cNode.setAttribute("Checked","true");
}
if(parseInt(cNode.getChildren().length)!=0)
{
writeIDchecked(cNode);
}
}
}
//judge it checked or not!
function boolvarl(ID)
{
var i;
var boolstring=false;
var IDList=document.all.TextBox1.value;
var GetID=new Array();
GetID=IDList.split(",");
for(i=0;i<(GetID.length-1);i++)
{
if(ID==GetID[i])
return true;
if(ID!=GetID[i])
{
boolstring=false;
}
}
if(boolstring==false)
return false;
}//CHECKBOX的按纽响应方法!
function tree_oncheck(treev)
{
var node=treev.getTreeNode(event.treeNodeIndex);
setcheck(node);
}
function setcheck(node)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
//首先处理其上级节点的状态
if (!node.getAttribute("checked")) { //如果没有选中,那么其所有的父节点状态都是未选中
var ParentNode = node.getParent();
while (ParentNode != null && ParentNode.getAttribute("checked")) {
ParentNode.setAttribute("checked", "false");
ParentNode = ParentNode.getParent();
}
}
else { //如果选中,那么检查同级节点,如果都选中,那么自动选中父节点,并且再检查父节点的同级节点
node.setAttribute("expanded", "true");
var ParentNode = node;
while ((ParentNode=ParentNode.getParent()) != null) {
var j = 0;
var BrotherNodes = new Array();
BrotherNodes = ParentNode.getChildren();
for (i = 0; i < BrotherNodes.length; i ++) {
if (BrotherNodes[i].getAttribute("Checked") == true) {
j++;
}
else {
i++;
break;
}
}
if (i == j) {
ParentNode.setAttribute("Checked", "true");
}
else {
break;
}
}
}
//现在处理子节点,将所有子节点都选中,或者取消选中
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
cNode.setAttribute("Checked", node.getAttribute("Checked"));
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode);
}
}//从Treeview中寻找被选中的所有节点
function FindCheckedFromTree(tree)
{
var i = 0;
var node;
//document.all.Text1.value = '';
//document.all.Text2.value = '';
while ((node=tree.getTreeNode(i.toString(10))) != null)
{
FindCheckedFromNode(node);
i = i + 1;
}
document.all.Text1.value = listID_checked;
document.all.Text2.value = listID_unchecked;
__doPostBack('LinkButton1','');
returnValue=true;
window.close();
}//从一个节点寻找其子节点所有被选中节点(递归)
function FindCheckedFromNode(node) {
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
for (i = 0; i < nodes.length; i++) {
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("Checked"))
{
listID_checked.push(cNode.getAttribute("ID"));
}
else
{
listID_unchecked.push(cNode.getAttribute("ID"));
}
if (parseInt(cNode.getChildren().length) != 0 ) //循环找子节点
{
FindCheckedFromNode(cNode);
}
}
}
var listID_checked = new Array; //选中的ID数组
var listID_unchecked = new Array; //没有选中的ID数组
//function for page_onload,this function for CHECKBOX which is checked mask checked!
function forChecked()
{
for(var i=0;i<9;i++)
{
var node=TreeView1.getTreeNode(i.toString());
writeIDchecked(node);
}
}
//write checked into CheckBox
function writeIDchecked(node)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
node.setAttribute("Checked","false");
if(boolvarl(node.getAttribute("ID")))
{
node.setAttribute("Checked","true");
}
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
cNode.setAttribute("Checked","false");
if(boolvarl(cNode.getAttribute("ID")))
{
cNode.setAttribute("Checked","true");
}
if(parseInt(cNode.getChildren().length)!=0)
{
writeIDchecked(cNode);
}
}
}
//judge it checked or not!
function boolvarl(ID)
{
var i;
var boolstring=false;
var IDList=document.all.TextBox1.value;
var GetID=new Array();
GetID=IDList.split(",");
for(i=0;i<(GetID.length-1);i++)
{
if(ID==GetID[i])
return true;
if(ID!=GetID[i])
{
boolstring=false;
}
}
if(boolstring==false)
return false;
}//CHECKBOX的按纽响应方法!
function tree_oncheck(treev)
{
var node=treev.getTreeNode(event.treeNodeIndex);
setcheck(node);
}
function setcheck(node)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
//首先处理其上级节点的状态
if (!node.getAttribute("checked")) { //如果没有选中,那么其所有的父节点状态都是未选中
var ParentNode = node.getParent();
while (ParentNode != null && ParentNode.getAttribute("checked")) {
ParentNode.setAttribute("checked", "false");
ParentNode = ParentNode.getParent();
}
}
else { //如果选中,那么检查同级节点,如果都选中,那么自动选中父节点,并且再检查父节点的同级节点
node.setAttribute("expanded", "true");
var ParentNode = node;
while ((ParentNode=ParentNode.getParent()) != null) {
var j = 0;
var BrotherNodes = new Array();
BrotherNodes = ParentNode.getChildren();
for (i = 0; i < BrotherNodes.length; i ++) {
if (BrotherNodes[i].getAttribute("Checked") == true) {
j++;
}
else {
i++;
break;
}
}
if (i == j) {
ParentNode.setAttribute("Checked", "true");
}
else {
break;
}
}
}
//现在处理子节点,将所有子节点都选中,或者取消选中
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
cNode.setAttribute("Checked", node.getAttribute("Checked"));
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode);
}
}//从Treeview中寻找被选中的所有节点
function FindCheckedFromTree(tree)
{
var i = 0;
var node;
//document.all.Text1.value = '';
//document.all.Text2.value = '';
while ((node=tree.getTreeNode(i.toString(10))) != null)
{
FindCheckedFromNode(node);
i = i + 1;
}
document.all.Text1.value = listID_checked;
document.all.Text2.value = listID_unchecked;
__doPostBack('LinkButton1','');
returnValue=true;
window.close();
}//从一个节点寻找其子节点所有被选中节点(递归)
function FindCheckedFromNode(node) {
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
for (i = 0; i < nodes.length; i++) {
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("Checked"))
{
listID_checked.push(cNode.getAttribute("ID"));
}
else
{
listID_unchecked.push(cNode.getAttribute("ID"));
}
if (parseInt(cNode.getChildren().length) != 0 ) //循环找子节点
{
FindCheckedFromNode(cNode);
}
}
}
解决方案 »
- 如何在后台循环添加字断啊!
- 求一个年历的js代码或者。。。。。。控件
- 关于eWebEditor
- 辞职 散分 200,无理由接分吧
- 存储过程时间提取问题
- 在.net中 ,我要判断 一个字符串 不能为0,或者00,或者000 ...就是不能不能全部为 0 怎么做啊 ?????????
- 如何使用request,response?
- ASTREEVIEW控制使用报错,救命啊!!!!!!!!!!!!
- 请假有没有简单的方法直接从一个有n条记录的dataview里得到前5条记录??
- 那为高手帮我把这个asp的代码转变成jsp或者js 谢谢
- 谁能提供http://www.eaoo.com/bbs/dispbbs.asp?boardID=7&ID=2330页面上的下拉菜单源码
- 如何减少session占用资源???
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;
using Microsoft.Web.UI.WebControls;
using DasMS.BusinessFacade;namespace DasMS.WebUI.TestFlat
{
/// <summary>
/// VersionUser_Edit 的摘要说明。
/// </summary>
public class VersionUser_Edit : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.HtmlControls.HtmlInputButton Buttion1;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.HtmlControls.HtmlInputText Text1;
protected System.Web.UI.HtmlControls.HtmlInputText Text2;
protected System.Web.UI.WebControls.LinkButton DataBinded;
protected System.Web.UI.WebControls.Label testORupdate;
protected static int membertype;
protected static int VersionID;
private void Page_Load(object sender, System.EventArgs e)
{
membertype = Convert.ToInt32(this.Request["type"]);
VersionID = Convert.ToInt32(this.Request["VersionID"]);
if(membertype == 1)
{
testORupdate.Text = "测试人员结构树";
}
else
{
testORupdate.Text = "修改人员结构树";
}
//构造TREEVIEW!
if(!this.IsPostBack)
{
TreeView1.Attributes.Add("oncheck","tree_oncheck(this)");
Button2.Attributes.Add("onclick","FindCheckedFromTree(TreeView1);");
TreeView1.SelectExpands=true;
TreeView1.ExpandLevel=1;
Microsoft.Web.UI.WebControls.TreeNode t1=new Microsoft.Web.UI.WebControls.TreeNode();
creat_node("DAS-manager",t1,"561");
BusinessFacade.bfTestFlat.C_Version l_Version = new BusinessFacade.bfTestFlat.C_Version(VersionID);
if(membertype == 1)
{
this.TextBox1.Text = l_Version.GetTestorList();
}
else if(membertype ==2)
{
this.TextBox1.Text = l_Version.GetUpdatorList();
}
//creatMainNode();
} } #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.LinkButton1.Click += new System.EventHandler(this.LinkButton1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
/// <summary>
/// 保存结果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LinkButton1_Click(object sender, System.EventArgs e)
{
string[] ls_GetReasultTrue = Text1.Value.Split(',');
if(ls_GetReasultTrue.Length > 0)
{
BusinessFacade.bfTestFlat.C_Version.UpdateMemberTree_clear(VersionID,membertype);
}
for(int i=0;i<ls_GetReasultTrue.Length;i++)
{
updateCheckTrue(ls_GetReasultTrue[i]);
}
//Response.Write("<script language='javascript'>returnValue='true'; window.close();</script>");
} /// <summary>
/// 生成TREEVIEW
/// </summary>
void creat_node(string name,Microsoft.Web.UI.WebControls.TreeNode t1,string number)
{
//定义一个新的结点
Microsoft.Web.UI.WebControls.TreeNode t2=new Microsoft.Web.UI.WebControls.TreeNode();
t2.ID=number;
t2.Text=name;
//TreeView1.ExpandedImageUrl="Image/ftp2.gif";
if(Convert.ToInt32(t2.ID)==561) //根节点
{
t2.CheckBox = false;
//TreeView1.Nodes.Add(t2);
}
else
{ //判断是否为根结点
if(Convert.ToInt32(t2.ID) > 561 && Convert.ToInt32(t2.ID) < 600)
{
//t2.ImageUrl="Image/dir0.gif";
t2.CheckBox=true;
TreeView1.Nodes.Add(t2);
}
else
{
//t2.ImageUrl="Image/dir0.gif";
//t1.ImageUrl="Image/dir0.gif";
t2.CheckBox=true;
t1.Nodes.Add(t2);
}
}
//取得这个结点的所有子结点,利用递归自动生成
DataTable ldt_Current = BusinessFacade.bfTestFlat.C_Version.MemberTree(Convert.ToInt32(number));
for(int i=0;i<ldt_Current.Rows.Count;i++)
{
creat_node(ldt_Current.Rows[i]["Name"].ToString(),t2,ldt_Current.Rows[i]["ID"].ToString());
}
}
/// 保存将CHECK改为TRUE的
/// </summary>
/// <param name="ID"></param>
private void updateCheckTrue(string ai_ID)
{
BusinessFacade.bfTestFlat.C_Version.UpdateMemberTree_ture(VersionID,Convert.ToInt32(ai_ID.Trim()),membertype);
} }
}