//后台绑定数据代码
TreeOrg.Nodes.Clear();
_OrgTable = new OrgainzationManager()._SearchOrgTree(MyStateManager.DomainID, MyStateManager.OrgID, "and valid=1");
DataRow[] rows = _OrgTable.Select("level=1");
foreach (DataRow row in rows)
{
TreeNode node = new TreeNode();
node.Text = row["name"].ToString();
node.Value = row["id"].ToString();
node.SelectAction = TreeNodeSelectAction.Expand;
node.ShowCheckBox = true;//显示复选框
node.Checked = row["OffDay_OrgId"].ToString() != "";
TreeOrg.Attributes.Add("onClick", "client_OnTreeNodeChecked()");
AddSubNode(node, _OrgTable, node.Checked.ToString());//添加子节点
TreeOrg.Nodes.Add(node);点击复选框事件
function client_OnTreeNodeChecked()
{
var obj = window.event.srcElement;
var treeNodeFound = false;
var checkedState;
if (obj.tagName == "INPUT" && obj.type == "checkbox")
{
var treeNode = obj;
checkedState = treeNode.checked;
do
{
obj = obj.parentElement;
} while (obj.tagName != "TABLE")
var parentTreeLevel = obj.rows[0].cells.length;
var parentTreeNode = obj.rows[0].cells[0];
var tables = obj.parentElement.getElementsByTagName("TABLE");
var numTables = tables.length
if (numTables >= 1)
{
for (i=0; i < numTables; i++)
{
if (tables[i] == obj)
{
treeNodeFound = true;
i++;
if (i == numTables)
{
return;
}
}
if (treeNodeFound == true)
{
var childTreeLevel = tables[i].rows[0].cells.length;
if (childTreeLevel > parentTreeLevel)
{
var cell = tables[i].rows[0].cells[childTreeLevel - 1];
var inputs = cell.getElementsByTagName("INPUT");
inputs[0].checked = checkedState;
}
else
{
return;
}
}
}
}
}
}function onclickCheck(){
//var OrgNames = ""; //组织结构名称
var inputObjs = document.getElementById("OrgTree").getElementsByTagName("input");
for (var i = 0; i < inputObjs.length; i++)//遍历树获取选中节点
{
if (inputObjs[i].type == "checkbox") {
if (inputObjs[i].checked) {
OrgNames = OrgNames + ("'" + inputObjs[i].title + "',"); //问题就在这里, inputObjs[i].title 取到的始终为空值
}
}
}
if (OrgNames.length < 1) {
alert('请选择组织结构!');
Cancel();
return false;
}
alert(OrgNames);
return;
}
解决方案 »
- 分享一个判断时间正则表达式给大家.
- 报表里XML 设了个<allowblank>true</allowblank>???
- 我该在【什么地方加插入数据库】的处理代码?怎么写?
- 关于使用UpdatePanel后,部分服务器控件的闪动的问题
- 请问吴旗娃的aspnetpager控件如何排序?
- 求一段程序,关于无组件上传的问题!
- asp上传文件到aspx页面问题
- Dreamweaver打开.aspx的页面,服务器端控件都不显示?
- 如何用HttpWebRequest连接HTTPS
- 数据访问问题
- 网页中嵌入winform,当页面刷新的时候,如何释放内存,重新加载winform?
- 指定的参数已超出有效值的范围。
function checkParent (obj)
{
while(obj != null)
{
var tagName = obj.tagName.toLowerCase();
if(tagName == "div" && obj.id == "TreeView1")
{
return;
}
if(tagName == "table")
{
var checkBox = obj.getElementsByTagName("INPUT");
if(checkBox.length >0)
{
checkBox[0].checked = true;
}
obj = obj.parentElement.previousSibling;
}
else
obj = obj.parentElement;
}
}
function client_OnTreeNodeChecked()
{
var obj = window.event.srcElement;
var treeNodeFound = false;
var checkedState;
if (obj.tagName == "INPUT" && obj.type == "checkbox")
{
var treeNode = obj;
checkedState = treeNode.checked;
if(checkedState)
{
checkParent(obj);
}
do
{
obj = obj.parentElement;
}
while (obj.tagName != "TABLE")
var parentTreeLevel = obj.rows[0].cells.length;
var parentTreeNode = obj.rows[0].cells[0];
var tables = obj.parentElement.getElementsByTagName("TABLE");
var numTables = tables.length
if (numTables >= 1)
{
for (i=0; i < numTables; i++)
{
if(tables[i] == obj)
{
treeNodeFound = true;
i++;
if(i == numTables)
{
return;
}
}
if (treeNodeFound == true)
{
var childTreeLevel = tables[i].rows[0].cells.length;
if (childTreeLevel > parentTreeLevel)
{
var cell = tables[i].rows[0].cells[childTreeLevel - 1];
var inputs = cell.getElementsByTagName("INPUT");
inputs[0].checked = checkedState;
}
else
{
return;
}
}
}
}
}
}
或
foreach(TreeNode no in this.tvMenu.Nodes)
{
GetTree(no);
GetChildTree(no);
}
private void GetTree(TreeNode node)
{
if (node.Checked == true)
{
int i=int.Parse(node.Value.ToString().Trim());
} }
rivate void GetChildTree(TreeNode node)
{
foreach (TreeNode nd in node.ChildNodes)
{
if (nd.Checked)
{
}
if(nd.ChildNodes.Count >0)
GetChildTree(nd);
}
}
js: var inputObjs = document.getElementById("OrgTree").getElementsByTagName("input");
又是OrgTree...是不是id写错了?