treeView中checkbox取值问题?

harron 2003-12-12 05:14:07
我想取treeview中选中的checkbox对应的node.id
page_load()
if not page.ispostback then
bindTree() ''生成树
end if
...

button_click()
dim id as string
getID(id,treeview1.nodes)
dim str_IDs as string=id
end ...

Function getTreeNodeID(ByRef m_id As String, ByVal m_nodes As TreeNodeCollection) As String
Dim temp_node As TreeNode
For Each temp_node In m_nodes
getTreeNodeID(m_id, temp_node.Nodes)
If temp_node.Checked Then
m_id += temp_node.ID.ToString + ","
End If
Next
End Function
为何取不出值啊??

...全文
154 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jaffler 2003-12-16
学习
  • 打赏
  • 举报
回复
harron 2003-12-16
自己解决了分给谁啊?!
  • 打赏
  • 举报
回复
harron 2003-12-16
<body onload="Test()">

<input type="hidden" id="idAll" runat="server" value=''>

<input type="button" Class="bsbttn" value="保存" name="cmdTest" Onclick="getCheck()">

<script language="javascript">
<!--
////////////////////////////////////////////////////////

function Test()
{

//var idStr='18,19,20,36,38,228,300,314';
var idStr=Form1.idAll.value;
//alert(idStr);
if (idStr!='')
{
var idArray=new Array();
var i=0,j=0;

while( i!=-1)
{
i=idStr.indexOf(',');
if(i!=-1)
idArray[j]=idStr.substr(0,i);
else
idArray[j]=idStr.substr(0);
//alert(idArray[j]);
idStr=idStr.substr(i+1);
j=j+1;
}
//alert(j);

//递归形式
changeNode(TreeView1,idArray);
}
}


function changeNode(sss,m_array)
{
var NodeArray=new Array();

NodeArray=sss.getChildren();
for(var i=0;i<NodeArray.length;i++)

{
cNode=NodeArray[i];

var m_i;
for(m_i=0;m_i<m_array.length;m_i++)
{

if(cNode.getAttribute("ID")==m_array[m_i])
{
cNode.setAttribute('Checked',true);
}

}

if (cNode.getChildren().length>0)
changeNode(cNode,m_array);

}
}

///////////////////////////////////////////////////////////////////////
//全局变量,保存选中的nodeid值,如 12,25,36,
var str_check='';
//取出checkbox的值
function getCheck()
{

//递归形式
getNode(TreeView1);
//取值保存到input里面,服务器端取值.
//alert(str_check);
Form1.idAll.value=str_check;
Form1.submit();
}

function getNode(m_treeNodes)
{
var NodeArray=new Array();

NodeArray=m_treeNodes.getChildren();
for(var i=0;i<NodeArray.length;i++)

{
cNode=NodeArray[i];
// alert(cNode.getAttribute("Checked"));
if(cNode.getAttribute("Checked")==true)
{
//alert('true');
str_check=str_check+cNode.getAttribute("ID")+',';
//alert(str_check);
}

if (cNode.getChildren().length>0)
getNode(cNode);

}
}

-->
</SCRIPT>

----------------------------------------------------------
Protected WithEvents idAll As System.Web.UI.HtmlControls.HtmlInputHidden

If Not Page.IsPostBack Then
idAll.Value=""

Else
''从客户端取值,提交选中的nodeid值
Dim m_IDs As String = idAll.Value
...
end if
  • 打赏
  • 举报
回复
veaven 2003-12-16
学习
  • 打赏
  • 举报
回复
lveight 2003-12-13
如果你想刷新的不是很厉害可以这么做,
在页面上用脚本写:
你先在服务器上将你要把CHECK设为TRUE的找出来,将ID号用一定的规则连成一串,送到页面端!再解开。
然后用个递归将CHECK赋值!
保存时也在页面端操作!结果应字符串的方式送到服务器端,然后保存到数据库中!
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
帖子事件
创建了帖子
2003-12-12 05:14
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。