[treeview]中选择节点前的checkbox无刷新问题

雷肿么了 2009-10-06 10:46:26
在treeview TreeNodeCheckChanged事件触发不了.

在网上找了段资料,通过选择节点前的checkbox实现了,树节点的全选功能


<script type="text/javascript">
function postBackByObject()
{
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox")
{
__doPostBack("","");
//__doPostBack("ctl00_ContentPlaceHolder2_TreeView2_SkipLink","");
}

}

</script>


protected void Page_Load(object sender, EventArgs e)
{
TreeView1.Attributes.Add("onclick", "postBackByObject()");
}

通过上面 的代码,可以实现全选功能. 但页面会刷新.
怎么实现选择checkbox时,实现无刷新效果?
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
雷肿么了 2009-10-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
....
[/Quote]
UpdatePanel 这方法我试过了. .不能实现,

试下,你另一个方法..
wuyq11 2009-10-06
  • 打赏
  • 举报
回复
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="update1">
<ContentTemplate>
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All"
ImageSet="Msdn" EnableClientScript="False"
ontreenodecheckchanged="tvMenu_TreeNodeCheckChanged">
</asp:TreeView>
</ContentTemplate>
</asp:UpdatePanel>

function OnTreeNodeChecked()
{
var ele = event.srcElement;
if(ele.type=='checkbox')
{
var childrenDivID = ele.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID);
if(div != null)
{
var checkBoxs = div.getElementsByTagName('INPUT');
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
checkBoxs[i].checked=ele.checked;
}
}
else
{
var div = GetParentByTagName(ele,'DIV');
var checkBoxs = div.getElementsByTagName('INPUT');
var parentCheckBoxID = div.id.replace('Nodes','CheckBox');
var parentCheckBox = document.getElementById(parentCheckBoxID);
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox' && checkBoxs[i].checked)
{
parentCheckBox.checked = true;
return;
}
}
parentCheckBox.checked = false;
}

}
}

function GetParentByTagName(element, tagName){
var parent = element.parentNode;
var upperTagName = tagName.toUpperCase();
while (parent && (parent.tagName.toUpperCase() != upperTagName)) ...{
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
return parent;
}
TreeView1.Attributes.Add("OnClick", "OnTreeNodeChecked()");
wartim 2009-10-06
  • 打赏
  • 举报
回复
ajax
试试updatepanel
雷肿么了 2009-10-06
  • 打赏
  • 举报
回复
这帖就此沉寂了.?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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