现在我用treeview在网页上生成了一个树,并且每个节点都是一个checkbox,问题如下:
1、该如何把数据绑定在每个checkbox上呢?
2、在点击“提交”按钮后如何得到被选中的checkbox值呢?我也用了递归,但是判断不出某个是否被选中(checked),比如
if(node.checked==true)
{
……
}
在执行上面的判断时,即使有选中的,也会跳过去的;我估计是在点按钮之后就重新加载目录树了,所以取不到值,但是不知道该如何解决~~;
以上问题请各路高手帮忙,都被这个问题折磨够戗了~~~~~多谢~
1、该如何把数据绑定在每个checkbox上呢?
2、在点击“提交”按钮后如何得到被选中的checkbox值呢?我也用了递归,但是判断不出某个是否被选中(checked),比如
if(node.checked==true)
{
……
}
在执行上面的判断时,即使有选中的,也会跳过去的;我估计是在点按钮之后就重新加载目录树了,所以取不到值,但是不知道该如何解决~~;
以上问题请各路高手帮忙,都被这个问题折磨够戗了~~~~~多谢~
解决方案 »
- 数据库操作相关
- 学ASP.NET要什么基础?
- 求SqlCommand.Parameters的用法!
- 业务实体层的设计,比如有订单表和订单明细表,采用typed dataset方案,若订单表里有关联到其他表的字段,比如CustomerID。这样的,数据
- 我要做个Jmail的本机测试的程序,请问我的SMTP邮件服务器的地址怎么写啊?等用。
- 如何实现传输层的安全?
- 微软的WebControls之Button控件的源代码,请高手进来过招
- 利用OWC怎么打开一个已存在的xls文件?
- 刚刚开始用ASP.NET,一点不懂
- 怎樣在Asp.Net中使用國際化資源?
- 大家请帮个忙!!谢谢~~
- 怎样让用户控件的属性显示在属性窗口中?
2. "即使有选中的,也会跳过去的",怎么个跳法?有选中的也不执行if 后面的语句吗?
--------------------
文本是可以绑定在节点上的,但是每个checkbox不都应该对应一个值吗?比如<input type="checkbox" name="xx" value="xxx">中的value~,这个值我不太清楚该如何绑定~~2. "即使有选中的,也会跳过去的",怎么个跳法?有选中的也不执行if 后面的语句吗?
----------------------
对,即使我选中了某个checkbox的话,也不执行上面的if语句~~~,
2. 如果你在if 处设置一下断点,选中了某个checkbox的话,也不执行上面的if语句?程序跳过if 语句?
第二个还没弄好,我也设断点跟踪了,程序确实不执行啊~~~~~,各位有没有类似的代码让我看看啊~~
Private Sub Remote(ByVal Node As Microsoft.Web.UI.WebControls.TreeNode, ByVal ins As String)
Dim count As Short
Dim i As Short count = Node.Nodes.Count
ins = ins & "-" & Trim(Node.Text.ToString)
If count = 0 Then
If Node.Checked = True Then
Call Expand(Node, Right(ins, ins.Length - 1))
End If
Else
For i = 0 To count - 1
If Node.Checked = True Then
Call Expand(Node, Right(ins, ins.Length - 1))
Exit For
Else
Call Remote(Node.Nodes(i), ins)
End If
Next
End If
End Sub
但是在onclick事件中,我连哪些checkbox被选中都判断不出来啊?
用其他办法可以吗?
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>
private void Page_Load(object sender, System.EventArgs e)
{
GetAllNodeText(TreeView1.Nodes);
}
void GetAllNodeText(TreeNodeCollection tnc)
{
foreach(TreeNode node in tnc)
{
if(node.Nodes.Count!=0)
GetAllNodeText(node.Nodes);
Response.Write(node.Text + " ");
}
}
请一定帮忙,谢谢!
请看看:
http://community.csdn.net/Expert/topic/3663/3663763.xml?temp=.569195
<script language="javascript">
<!--
var strFuncs = ""; //功能节点ID字符串
var strSepa = ","; //功能节点ID字符串的分隔符
//单击"取消"按钮
function btnCancel_Click()
{
self.close();
}
//单击"确定"按钮,得到所选择的所有功能选项
function btnOK_Click()
{
var tvwFunc1 = document.getElementById("tvwFunc");
var strFunc = "";
var allRootNodes = new Array();
allRootNodes = tvwFunc1.getChildren();
strFunc = getCheckedNodeID(allRootNodes);
window.parent.returnValue = strFunc; //向父页面返回功能节点ID
self.close();
}
//遍历所有节点,获取所有选中节点的 ID 号
function getCheckedNodeID(NodeArray)
{
if(parseInt(NodeArray.length) == 0)
{
return;
}
else
{
for(var i = 0; i < NodeArray.length; i++)
{
var cNode;
cNode = NodeArray[i];
if(cNode.getAttribute("Checked") == true)
{
strFuncs = strFuncs + cNode.getAttribute("ID") + strSepa;
}
if(cNode.getChildren().length != 0)
{
//第归调用
getCheckedNodeID(cNode.getChildren());
}
}
}
var iPos = strFuncs.lastIndexOf(",");
if(iPos != 0)
{
return strFuncs.substring(0,iPos);
}
else
{
return strFuncs;
}
}
//初始化选中节点
function initCheckedNode()
{
var trids = window.dialogArguments;
var arrCheckedId = new Array();
var arrUncheckedId = new Array();
if(trids != null)
{
arrCheckedId = trids.split(",");
var tvwFunc = document.getElementById("tvwFunc");
var arrAllRootNode = new Array();
arrAllRootNode = tvwFunc.getChildren();
try
{
for(var i = 0; i < arrCheckedId.length; i++)
{
FindOriFuncNode(arrAllRootNode,arrCheckedId[i]);
}
}
catch(e)
{
alert(e);
}
}
}
//第归调用遍历所有树形节点
function FindOriFuncNode(NodeArray,nodeID)
{
if(parseInt(NodeArray.length) == 0)
{
return;
}
else
{
for(var i = 0; i < NodeArray.length; i++)
{
var cNode = NodeArray[i];
if(cNode.getAttribute("ID") == nodeID)
{
cNode.setAttribute("Checked","true");
break;
}
if(parseInt(cNode.getChildren().length) != 0)
{
FindOriFuncNode(cNode.getChildren(),nodeID);
}
}
}
}
//oncheck事件
function tree_oncheck(tree)
{
var node = tree.getTreeNode(tree.clickedNodeIndex);
var blChecked = node.getAttribute("Checked");
//设置子节点选中
setCheck(node,blChecked);
//设置父节点选中
setParentNode(node);
document.all.checkedNodes.value = "";
document.all.uncheckedNodes.value = "";
FindCheckedFromNode(document.getElementById("tvwFunc"));
}
//设置子节点状态
function setCheck(node,blChecked)
{
var childNodes = new Array();
childNodes = node.getChildren();
if(parseInt(childNodes.length) == 0)
{
return;
}
else
{
for(var i = 0; i < childNodes.length; i++)
{
var cNode = childNodes[i];
if(parseInt(cNode.getChildren().length) != 0)
{
//递归调用
setCheck(cNode,blChecked);
}
cNode.setAttribute("Checked",blChecked);
}
}
}
//设置父节点状态,
function setParentNode(node)
{
if(node.getAttribute("Checked"))
{
//如果节点选中,则设置所有父节点选中
var parentNode = node.getParent();
while(parentNode != null)
{
parentNode.setAttribute("Checked","true");
parentNode = parentNode.getParent();
}
}
else
{
var blChecked = false;
var parentNode = node.getParent();
if(parentNode != null)
{
var arrBrotherNode = parentNode.getChildren();
for(var i = 0; i < arrBrotherNode.length; i++)
{
var bNode = arrBrotherNode[i];
if(bNode.getAttribute("Checked"))
{
blChecked = true;
break;
}
}
// 如果所有子节点CheckBox为假,则设置父节点为假
if(blChecked == false)
{
parentNode.setAttribute("Checked","false");
}
}
}
}
//获取所有节点状态
function FindCheckedFromNode(tree)
{
var allNodes = new Array();
allNodes = tree.getChildren();
for(var i = 0; i < allNodes.length; i++)
{
var cNode;
cNode = allNodes[i];
if(cNode.getAttribute("Checked"))
{
addCheckedNode(cNode);
}
else
{
addUncheckedNode(cNode);
}
if(cNode.getChildren().length != 0)
{
//递归调用
FindCheckedFromNode(cNode);
}
}
}
//添加选中节点
function addCheckedNode(node)
{
document.all.checkedNodes.value += node.getAttribute("NodeData");
document.all.checkedNodes.value += ',';
}
//添加未选中节点
function addUncheckedNode(node)
{
document.all.uncheckedNodes.value += node.getAttribute("NodeData");
document.all.uncheckedNodes.value += ',';
}
//-->
</script>