关于用treeview实现收藏夹功能?

qzb0818 2006-05-24 09:06:19
要在网页中用Microsoft.Web.UI.WebControls.TreeView实现一个收藏夹功能,现在是希望通过点击《新增》在树上生成一个节点,该节点是可编辑的(就像新建文件夹一样),然后用户可以在里面输入
名字,移动鼠标到外面后把输入的名字保存会数据库。我现在的做法是记录新增的节点,在生成树时判断,如果是新增的,则
if(是新增节点)
{新增节点.Text=@"<INPUT name='FavoriteName' id='FavoriteName'value='"+FavoritesInfo.FavoriteName+"' onchange='DoSomething(this);' style='Z-INDEX: 10000;BORDER-RIGHT: #000099 1px inset; BORDER-TOP: #000099 1px inset; BORDER-LEFT: #000099 1px inset; WIDTH: 80px; BORDER-BOTTOM: #000099 1px inset ' onFocusOut='LostFocus(this);' type='text'>";}
这样我可以基本上实现上述功能。现在的问题是:1.如何让INPUT框在生成树后直接显示为可输入状态,即用户可以直接输入名字。而现在是用户要点击两次之后才能输入东西。2.我在客户端用document.getElementById('FavoriteName')不能找到INPUT框,也就不能在客户端给与更灵活的控制。

请大家帮帮忙,看看怎么解决这个问题!谢谢!
...全文
180 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggygd 2006-05-25
  • 打赏
  • 举报
回复
學習
qzb0818 2006-05-25
  • 打赏
  • 举报
回复
ding
qzb0818 2006-05-25
  • 打赏
  • 举报
回复
别沉啊,大家帮帮忙,看怎么从
<tvns:treenode Expanded="True" ID="0daa8900-271a-4fb0-b9e5-a464d6a79f84">
<INPUT name='FavoriteName' id='FavoriteName' value='新建收藏夹t' onchange='DoSomething(this);' style='Z-INDEX: 10000;BORDER-RIGHT: #000099 1px inset; BORDER-TOP: #000099 1px inset; BORDER-LEFT: #000099 1px inset; WIDTH: 80px; BORDER-BOTTOM: #000099 1px inset ' type='text'>
</tvns:treenode>
中取到INPUT,让其获得焦点!
qzb0818 2006-05-25
  • 打赏
  • 举报
回复
看源文件得到<tvns:treeview id="TreeViewKBFavorite" onclick="SelectNodeName();GetNodesId()" imageUrl="../Images/file.gif" selectedNodeIndex="0" HelperID="__TreeViewKBFavorite_State__" systemImagesPath="/webctrl_client/1_0/treeimages/" showToolTip="false" __scrollTop="0" __scrollLeft="0" onexpand="javascript: if (this.clickedNodeIndex != null) this.queueEvent('onexpand', this.clickedNodeIndex)" oncollapse="javascript: if (this.clickedNodeIndex != null) this.queueEvent('oncollapse', this.clickedNodeIndex)" oncheck="javascript: if (this.clickedNodeIndex != null) this.queueEvent('oncheck', this.clickedNodeIndex)" onselectedindexchange="javascript: if (event.oldTreeNodeIndex != event.newTreeNodeIndex) this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex)" style="height:100%;width:348px;">
<tvns:treenode Expanded="True" ID="00000000-0000-0000-0000-000000000000">
我的收藏夹<tvns:treenode Expanded="True" ID="a698f63d-8bb6-419e-bcb7-126efcf74cc2">
kkshou
</tvns:treenode><tvns:treenode Expanded="True" ID="2216ea8e-8798-405f-9fe5-29804b8aec10">
精华推荐<tvns:treenode Expanded="True" ID="47020a08-4dd3-469b-bf6e-18d2a416190f">
娱乐新闻<tvns:treenode Expanded="True" ID="15527fd7-ea85-4bdf-bbd9-edd932641bdb">
hhh<tvns:treenode Expanded="True" ID="962c1cd7-f0b0-4e49-9de7-b27488f996b6">
新建收藏
</tvns:treenode><tvns:treenode Expanded="True" ID="a9c3fa14-3770-4ba2-89aa-f873057e4af8">
新建收藏夹
</tvns:treenode><tvns:treenode Expanded="True" ID="01823821-4e0a-4ec3-8bca-a593ce5964fb">
新建收藏夹1
</tvns:treenode><tvns:treenode Expanded="True" ID="cb6861ce-d4dc-4b8f-94e9-ae602117217b">
新建收藏夹2
</tvns:treenode><tvns:treenode Expanded="True" ID="5d19099f-b2bc-456a-90d5-4afea297b2fd">
新建收藏夹3<tvns:treenode Expanded="True" ID="0ba15338-0dcc-4004-9690-13ed7b90d3aa">
新建收藏夹ttt<tvns:treenode Expanded="True" ID="0daa8900-271a-4fb0-b9e5-a464d6a79f84">
<INPUT name='FavoriteName' id='FavoriteName' value='新建收藏夹t' onchange='DoSomething(this);' style='Z-INDEX: 10000;BORDER-RIGHT: #000099 1px inset; BORDER-TOP: #000099 1px inset; BORDER-LEFT: #000099 1px inset; WIDTH: 80px; BORDER-BOTTOM: #000099 1px inset ' type='text'>
</tvns:treenode>
</tvns:treenode>
</tvns:treenode><tvns:treenode Expanded="True" ID="04622b8b-4099-48f6-923d-acb8b40ec80d">
新建收受luu
</tvns:treenode>
</tvns:treenode>
</tvns:treenode>
</tvns:treenode><tvns:treenode Expanded="True" ID="3c3c2adc-4308-487d-a088-b3fb7cf9eb1f">
生活点滴<tvns:treenode Expanded="True" ID="a9cfc42a-317a-4b1f-b8d8-3deb4cdcb1b6">
新建收藏<tvns:treenode Expanded="True" ID="109b4a98-d7dd-486e-a234-4bd4e4d41880">
新间
</tvns:treenode>
</tvns:treenode>
</tvns:treenode><tvns:treenode Expanded="True" ID="e5eb7cd2-e305-4f7e-b00e-b6af8691e9fc">
图99
</tvns:treenode><tvns:treenode Expanded="True" ID="02d9f014-d8df-472b-8005-7ee0cd35682a">
知识
</tvns:treenode>
</tvns:treenode>
</tvns:treeview>

可以看到<INPUT 的存在,现在我希望通过js让<INPUT 获得输入焦点,有什么办法没有?请大家帮帮忙!
njuzgj 2006-05-25
  • 打赏
  • 举报
回复
MARK
qzb0818 2006-05-25
  • 打赏
  • 举报
回复
up
Edifier0709 2006-05-25
  • 打赏
  • 举报
回复
从上面的代码看。

如果你用document.getElementById('FavoriteName')去获取的时候,你确认该Input框已经生成
了的话,是一定可以获取到的。

现在的问题是不是这个INPUT在你使用Javascript去获取之后才生成出来?
CH_MARS 2006-05-25
  • 打赏
  • 举报
回复
up
qzb0818 2006-05-25
  • 打赏
  • 举报
回复
别沉啊,大家帮帮忙,看怎么从
<tvns:treenode Expanded="True" ID="0daa8900-271a-4fb0-b9e5-a464d6a79f84">
<INPUT name='FavoriteName' id='FavoriteName' value='新建收藏夹t' onchange='DoSomething(this);' style='Z-INDEX: 10000;BORDER-RIGHT: #000099 1px inset; BORDER-TOP: #000099 1px inset; BORDER-LEFT: #000099 1px inset; WIDTH: 80px; BORDER-BOTTOM: #000099 1px inset ' type='text'>
</tvns:treenode>
中取到INPUT,让其获得焦点!
qzb0818 2006-05-24
  • 打赏
  • 举报
回复
To: cat_hsfz(我的Blog在http://purl.oclc.org/NET/cathsfz)
通过此控件的ClientID属性获取其客户端ID 如何做?
我希望通过脚本设置input的焦点。如document.getElementById('FavoriteName').focus().
请问怎么实现?
谢谢
cat_hsfz 2006-05-24
  • 打赏
  • 举报
回复
1.既然你能够直接输出一个<input>作为节点,你也就可以输出一个<a>和<input style="display:hidden">作为节点,在<a>的onclick时隐藏<a>并显示<input>,这样点“新增”时就少一次服务器端忘返。

2.因为那个控件的服务器端ID为FavoriteName不意味着它的客户端ID也是,你需要通过此控件的ClientID属性获取其客户端ID。
shw586 2006-05-24
  • 打赏
  • 举报
回复
作个记号,等会再来,帮顶一下
ilovejolly 2006-05-24
  • 打赏
  • 举报
回复
mark

62,074

社区成员

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

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

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

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