• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET之TreeView复选框实现全选或全不选

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
ASP.NET之TreeView复选框实现全选或全不选
(1)TreeView 控件不会公开 AutoPostBack 属性。因此,若要提交复选框选择,必须在页上放置一个控件(如 Button Web 服务器控件),以便将信息回发至服务器。
(2)还有一种办法就是在客户端写JavaScript脚本
  但是有个问题:TreeView是动态生成的,那么什么时候调用全选的脚本呢?  答案肯定是在根节点的checkbox上的onclick事件上调用全选的JavaScript脚本函数。那么自动生成的页中的HTML代码里没有onclick这个事件,怎么办?问题转移了,没有怎么办?自己给加一个,怎么加,什么时候加?什么时候加,当然是页面一加载的时候(Page_Load事件中),那么就一个问题了,那就是怎么加?
代码如下(给根节点加一个onclick事件):
      string str ="<script type='text/javascript' language='javascript'>
document.getElementByIdx_x('TreeView1n0CheckBox').setAttribute('onclick','rec
()');</script>";
   ClientScriptManager cs = Page.ClientScript;
    cs.RegisterStartupScript(this.GetType(),"addOnclick",str);
接下来运行,就会发现根本没有错,但实现不了效果,原因很简单,那里就是根本没有写"rec()"方法的实现。
方法代码如下:
 <script type="text/javascript" language="javascript">
        function rec() {

            var obj = document.getElementByIdx_x('TreeView1n0CheckBox');  //得到根节点元素
            for (var i = 0; i < document.getElementsByTagName_r("input").length; i++) {
                if (document.getElementsByTagName_r("input").item(i).type == "checkbox") {
        document.getElementsByTagName_r("input").item(i).checked=obj.checked;
                } }

        
      
        }
 </script>
这样就基本完成了这样一个效果,代码需要进一步优化,以实现更强大的效果。虽然这样写也不
是太难理解,但我足足想了两天。
(3)最后可以用JQuery实现,更简单,功能更强大(任何一级节点都可以实现全选或全不选)!
所以推荐用这种方法。
代码如下:
<%@ Page Language="C#" CodeBehind="TreeView.aspx.cs" Inherits="TreeView.TreeView" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            //为了不至于和页面上其他元素混乱,所以把TreeView控件放在一个id为Treeview的div中,然后
            //再查找checkbox
            $("#Treeview table tr td  input[type=checkbox]").click(
             function () {

                 $("#Treeview div[></asp:TreeNode>
                </asp:TreeNode>
            </Nodes>
        </asp:TreeView>
   
    </div>
    </form>
</body>
</html>
可以把javascript脚本单独放在一个js文件中,可以达到很好的复用!这是今天上午闲着没事刚写的。写这些东西时,一定要注意在浏览中浏览时,把TreeView控件中的元素生成了什么东西,然后再想着怎么查找。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap