TreeView滚动条的问题(100分),如果解决的好可再开贴追加分!

cowcs 2010-05-30 08:43:14
我根据XML文件动态生成Treeview的节点,因为节点太多,所以启用了Treeview的滚动条

还是因为节点太多,想找到特定的节点不容易,所以我想在一个Textbox中输入要查找的节点,单击Button让找到的节点并且被选中,然后让滚动条滚动到这个节点的位置。

遍历查找并选中节点容易实现,请高人帮忙解决滚动条的问题!!
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2010-05-30
  • 打赏
  • 举报
回复

<asp:TextBox ID="TextBox1" runat="server" onchange=""></asp:TextBox>
<input type="button" value="查找节点" onclick="scrollToNode()" />

<script>
function scrollToNode() {
var text = document.getElementById('TextBox1').value;
var lnks = document.getElementsByTagName('a');
for (var i = 0; i < lnks.length; i++) {
if (lnks[i].firstChild && lnks[i].firstChild.nodeValue == text) {
lnks[i].style.background = 'blue';
lnks[i].style.color = 'white';
lnks[i].scrollIntoView();
}
}
}
</script>
wuyq11 2010-05-30
  • 打赏
  • 举报
回复
递归遍历,查找到对该节点展开Node.Expand(),设置SelectedNode
private void SearchNode(TreeNodeCollection tnds,string text )
{
foreach(TreeNode tnd in tnds)
{
if(tnd.Text.Equlas(text))
{
MessageBox.Show(text);
break;
}
if(tnd.Nodes.Count!= 0)
{
SearchNode(tnd.Nodes,text);
}
}
}
使用 TreeNode.FromHandle方法来快速定位节点
子夜__ 2010-05-30
  • 打赏
  • 举报
回复
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;
}
}
}
}
}

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧