请教各位高手,如果我的treeview有几千个节点,用JS的话,有什么好的办法可以快速定位选的有哪些节点?
解决方案 »
- 加班中急!!DOTNET上传文件过4M就无法上传了,如何才能上传20M的文件
- Forms验证问题,帮忙给一个Forms验证的例子,所要的工作是验证登陆页面,访问其他页面,若没有登陆则跳转到登陆(login.aspx),谢谢!!在
- 在新闻系统中,如何实现当前位置显示
- 不知道曾经在哪里看到别人说,安装后的vs.net2003 本身就带有几套例子, 请问在哪里呢? 找不到啊
- 各大哥好!在用微软的快速入的最后一个例子出错,请帮我看看这是为什么!我是刚接触asp.net,望大哥们指点!非常感谢!!!
- 这里有个问题想和大伙讨论一下
- 修改功能怎么没实现?
- 急急!!!关于asp.net中加载项目的问题
- jQuery的 autocomplete 怎么实现鼠标划过 文本框值随着改变 怎么实现
- 点击一次按钮,请求多次的问题,百思不得其解啊
- 求三层架构和MVC的区别和联系
- 求一代码,序列化json数据
{
IList<RoleRight> currentRoleParentNodes = RoleRightManager.GetParentNodesByRoleId(roleId); ArrayList arrRoleParentNodes = new ArrayList();
foreach (RoleRight roleRight in currentRoleParentNodes)
{
arrRoleParentNodes.Add(roleRight.SysFun.NodeId.ToString());
}
//得到所有父级节点信息
IList<SysFun> sysFuns = SysFunManager.GetAllParentNodeInfo();
//根据父节点得到对应子节点,把父子节点生成用户控件,然后循环插入到PlaceHolder容器中
foreach (SysFun sysFun in sysFuns)
{
//得到父节点Id
string nodeId = sysFun.NodeId.ToString();
//得到父节点名称
string displayName = sysFun.DisplayName;
//实例化用户控件
RoleUserControl roleCotrol = (RoleUserControl)LoadControl(@"RoleUserControl.ascx");
//实例化隐藏域,用以存储父节点Id
HtmlInputHidden hidParentMenu = (HtmlInputHidden)roleCotrol.FindControl("hidParentMenu");
hidParentMenu.Value = nodeId;
//实例化隐藏域,用以存储角色Id
HtmlInputHidden hidRoleId = (HtmlInputHidden)roleCotrol.FindControl("hidRoleId");
hidRoleId.Value = roleId.ToString();
//实例化用户控件中的CheckBox
CheckBox chkParentMenu = (CheckBox)roleCotrol.FindControl("chkParentMenu"); //显示父菜单名称
chkParentMenu.Text = displayName; if (arrRoleParentNodes.Contains(nodeId))
{
chkParentMenu.Checked = true;
} //把父子节点生成的用户控件追加到PlaceHolder容器中
phRoleDistribute.Controls.Add(roleCotrol);
}
}
protected void btnSave_ServerClick(object sender, EventArgs e)
{
int roleId = int.Parse(Request["roleid"].ToString());//获得指定的角色id
IList<RoleRight> currentRoleRights = RoleRightManager.GetAllNodesByRoleId(roleId);
ArrayList arrRoleNodes = new ArrayList();
foreach (RoleRight roleRight in currentRoleRights)
{
arrRoleNodes.Add(roleRight.SysFun.NodeId.ToString());
} foreach (Control ct in phRoleDistribute.Controls)
{
CheckBox chk = (CheckBox)ct.FindControl("chkParentMenu");
HtmlInputHidden hih = (HtmlInputHidden)ct.FindControl("hidParentMenu"); if (chk.Checked)
{
if (!arrRoleNodes.Contains(hih.Value))
{
RoleRightManager.InsertRoleRight(roleId.ToString(), hih.Value);
}
}
else
{
if (arrRoleNodes.Contains(hih.Value))
{
RoleRightManager.DeleteRoleRight(roleId.ToString(), hih.Value);
}
} CheckBoxList chklst = (CheckBoxList)ct.FindControl("chklstChildMenu");
foreach (ListItem li in chklst.Items)
{
if (li.Selected)
{
if (!arrRoleNodes.Contains(li.Value))
{
RoleRightManager.InsertRoleRight(roleId.ToString(), li.Value);
}
}
else
{
if (arrRoleNodes.Contains(li.Value))
{
RoleRightManager.DeleteRoleRight(roleId.ToString(), li.Value);
}
}
}
}
Response.Write("<script>alert('权限已生效!!');self.document.location.href='RoleManage.aspx'</script>");
}
我这有个例子看看有帮助吗?
function CheckAll(paramId)
{
var items = document.getElementsByTagName("input");
for(i=0; i<items.length;i++)
{
var e = items[i];
var eId = e.id;//获得当前控件元素的Id
var m = eId.indexOf('_chk');
var n = paramId.indexOf('_chk');
//判断控件类型是否是checkbox,父子节点Id是否匹配,以控制只选中该父节点对应的子节点
if(eId.substring(0,m)==paramId.substring(0,n) &&e.type=='checkbox')
{
e.checked = document.getElementById(paramId).checked;
}
}
}function CheckOnly(paramId)
{
var items = document.getElementsByTagName("input");
for(i=0; i<items.length;i++)
{
var e = items[i];
var eId = e.id;
var m = eId.indexOf('_chk');
var n = paramId.indexOf('_chk');
//判断控件类型是否是checkbox,父子节点Id是否匹配,以控制只选中该子节点对应的父节点
if(eId.substring(0,m) == paramId.substring(0,n) && e.type=='checkbox')
{
if(eId.indexOf('chkParentMenu')!=-1){document.getElementById(eId).checked =true;}
}
}
}
</script>