【jquery版.net控件—dropdownlist】附源码,欢迎大家指点、指正、拍砖!!!

简介:
前言

为了2012第一个春天,为了我那卑微的工资,为了我那伟大的爱情............................

其实是为了自我能力的提升罢了,呵呵!!!(也是为了涨工资吧...)

小弟准备向web前段开炮,而对js与jq都是初学,现在借博客园这块宝地来督促自己,借博客园的高手来提点自己。

小弟准备陆陆续续用jquery模仿一点.net的控件以提高自己,顺便看看能不能弄一点可用插件出来,各位大哥看到了多多指点哦。

控件简单应用

效果图

1 初始化效果

 



 

 

 



生成的html代码

 

 2 控件选项改变事件以及列表项点击事件(最后三项后期加入未作事件绑定)

 







3 前台调用代码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!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>
    <title></title>
    <script src="scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="js/dropDownList.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var data = [];
            for (var i = 0; i < 3; i++) {
                data[i] = {};
                data[i]["v"] = "value_" + i.toString();
                data[i]["t"] = "text_" + i.toString();
            }
 
            var $div = $("#divwl");
            var drop1 = new dropDownList("drop1");
 
            drop1.event.onChange = onSelectChanged;
            drop1.itemEvent.onClick = onItemClick;
            drop1.dataSource = data;
            drop1.dataValueField = "v";
            drop1.dataTextField = "t";
            drop1.dataTitleField = "v";
            drop1.dataBind($div);
 
            drop1.setSelectedText("text_2");
 
            //动态添加选择项,此处选择项没有事件
            for (var i = 0; i < 3; i++) {
                var v = "inertValue_" + i;
                var t = "insertText_" + i;
                var _item = new item(v, t);
                _item.load();
                drop1.insertItem(_item);
            }
            drop1.style.width = '300px';
            drop1.style.height = '25px';
            drop1.style.background = 'Gray';
            drop1.styleLoad();
 
            //事件处理函数
            function onItemClick() {
                var sender = this;
                var optionSender = sender.htmlElement;
                var selectedValue = optionSender.val();
                var item = sender;
                var $div = $("#itemText");
                $div.html("单项点击事件<hr/>" + "当前项:" + item.attribute.text + "<br/>当前值:" + selectedValue);
                $div.fadeIn(500);
                $div.fadeOut(5000);
            }
            function onSelectChanged() {
                var sender = this;
                var dropSender = sender.htmlElement;
                var selectedValue = dropSender.val()
                var item = sender.getSelectedItem();
                var $div = $("#text");
                $div.html("dropdownlist的改变事件<hr/>" + "当前项:" + item.attribute.text + "<br/>当前值:" + selectedValue);
                $div.fadeIn(500);
                $div.fadeOut(5000);
            }
            function onSelectClick() {
                var sender = this;
                var dropSender = sender.htmlElement;
                var selectedValue = dropSender.val()
                var $div = $("#text");
                $div.html("dropdownlist的点击事件,当前值:" + selectedValue);
                $div.fadeIn(500);
                $div.fadeOut(5000);
            }
 
        });
       
    </script>
</head>
<body>
    <div id="divwl">
    </div>
    <div id="text">
    </div>
    <div id="itemText">
    </div>
</body>
</html>
 1 数据源

 数据源为我们动态写入的数组。

复制代码
var data = [];
            for (var i = 0; i < 3; i++) {
                data[i] = {};
                data[i]["v"] = "value_" + i.toString();
                data[i]["t"] = "text_" + i.toString();
            }

            var $div = $("#divwl");
            var drop1 = new dropDownList("drop1");
复制代码
2 基本调用说明

复制代码
1  drop1.event.onChange = onSelectChanged;
2             drop1.itemEvent.onClick = onItemClick;
3             drop1.dataSource = data;
4             drop1.dataValueField = "v";
5             drop1.dataTextField = "t";
6             drop1.dataTitleField = "v";
7             drop1.dataBind($div);
9             drop1.setSelectedText("text_2");
复制代码
与.net控件基本一致,给定数据源,但是我这里多出了一个dataTitleField用以显示提示框。

其中,drop1.event.onChange = onSelectChanged;为select 的事件

drop1.itemEvent.onClick = onItemClick; 为option的事件绑定

注意,此处事件绑定采用的是call的用法,所以下方函数:中的this作用域环境要注意。

3 动态添加列表项

 

复制代码
1  //动态添加选择项,此处选择项没有事件
2             for (var i = 0; i < 3; i++) {
3                 var v = "inertValue_" + i;
4                 var t = "insertText_" + i;
5                 var _item = new item(v, t);
6                 _item.load();
7                 drop1.insertItem(_item);
8             }
复制代码
此处添加的项,便没有做事件绑定了。

再下面的代码便是对应函数便不多说了。

控件数据源Ajax获取应用

 1 效果图

 基本界面

 



Ajax获得json数据源:

[{"id":1,"name":"河北"},{"id":2,"name":"江苏"},{"id":3,"name":"四川"},{"id":4,"name":"贵州"}]

对应数据库数据:



点击对应省份引发改变事件



获取数据源:

[{"id":8,"provinceId":3,"name":"成都"},{"id":9,"provinceId":3,"name":"绵阳"},{"id":10,"provinceId":3,"name":"遂宁"},{"id":11,"provinceId":3,"name":"南充"}]
前台调用代码:

复制代码
<!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>
    <title></title>
    <script src="scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="js/dropDownList.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var dataProvince = null;
            $.ajax({
                type: "post",
                url: "Ajax.aspx?sql=select  * from province   ",
                type: "json",
                async: false,
                success: function (data) {
                    dataProvince = data;
                }
            });

            var $div = $("#province");
            var drop1 = new dropDownList("dropProvince");
            drop1.event.onChange = onSelectChanged;
            drop1.dataSource = dataProvince;
            drop1.dataValueField = "id";
            drop1.dataTextField = "name";
            drop1.dataTitleField = "name";
            drop1.dataBind($div);
            var _item = new item("-1", "==请选择省份==");
            drop1.insertItem(_item);
            drop1.setSelectedText("==请选择省份==");

            function onSelectChanged() {
                var sender = this;
                //                var provinceId = sender.getSelectedValue();//也可以
                var provinceId = drop1.getSelectedValue();

                var dataProvince = null;
                $.ajax({
                    type: "post",
                    url: "Ajax.aspx?sql=select  * from city where provinceId=" + provinceId + "   ",
                    type: "json",
                    async: false,
                    success: function (data) {
                        dataProvince = data;
                    }
                });
                var $div1 = $("#city");
                var dropCity = new dropDownList("dropCity");

                $div1.html("市:");
                dropCity.dataSource = dataProvince;
                dropCity.dataValueField = "id";
                dropCity.dataTextField = "name";
                dropCity.dataTitleField = "name";
                dropCity.dataBind($div1);

            }

        });
      
    </script>
</head>
<body>
    <div id="province">
        省:
    </div>
    <hr />
    <div id="city">
        市:
    </div>
</body>
</html>
复制代码
这个我便暂时不说明了吧,很晚了,明天还要上班呢......

因为不知道看的人多不多,也不知道大家有没有问他,若是有问题我再解答吧,具体请大家自己去运行吧。

 

 dropdownlist源代码

 

 

 



本文转自叶小钗博客园博客,原文链接:http://www.cnblogs.com/yexiaochai/archive/2012/02/10/2344750.html如需转载请自行联系原作者

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
3月前
|
JavaScript
jquery实现的网页版扫雷小游戏源码
这是一款基于jQuery实现的经典扫雷小游戏源码,玩家根据游戏规则进行游戏,末尾再在确定的地雷位置单击右键安插上小红旗即可赢得游戏!是一款非常经典的jQuery游戏代码。本源码改进了获胜之后的读数暂停功能。
146 69
|
3月前
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
72 22
|
3月前
|
JavaScript
jQuery仿Key社游戏风格右键菜单特效源码
jQuery二次元风格右键菜单插件HTML源码,该插件将原生的浏览器右键菜单转换为一个动画的圆形菜单,并且带音效,效果非常的炫酷。 本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码。
55 18
|
3月前
jQuery+Slick插件实现游戏人物轮播展示切换源码
jQuery+Slick插件实现游戏人物轮播展示切换源码
57 14
|
3月前
|
JavaScript
jQuery+HTML5实现的微信大转盘抽奖源码
这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,代码里面有详细的注释,可以修改文字或者二次开发都可以
78 11
|
3月前
|
JavaScript
jQuery仿方块人物头像消除游戏源码
jQuery人物头像迷阵消除游戏代码是一款类似《宝石迷阵》类的方块消除类型的小游戏源码。
502 13
|
3月前
|
JavaScript
jQuery实现的卡片式翻转时钟HTML源码
jQuery实现的卡片式翻转时钟HTML源码
31 0
jQuery实现的卡片式翻转时钟HTML源码
|
5月前
|
JavaScript
jQuery实现的滚动切换图表统计特效源码
jQuery实现的滚动切换图表统计特效源码是一段全屏滚动的企业当月运营报告数据统计图表代码,涵盖流行的线性、圆形、柱形图统计方式,适应于绝大多数企业,欢迎感兴趣的朋友前来下载参考。
62 2
|
5月前
jQuery+CSS3模拟过山车动态的文字动画特效源码
jQuery+CSS3模拟过山车动态的文字动画特效源码实现在全黑的背景下,画面中的文本呈现过山车的轨迹动画上下滚动转圈,且伴随文本颜色渐变效果,非常有意思,欢迎对此特效感兴趣的朋友前来下载参考。
61 1
|
5月前
|
JavaScript
jQuery制作的3D冰块立方时钟动态特效源码
jQuery制作的3D冰块立方时钟动态特效源码是一段基于jQuery实现的3D魔方立方时钟效果代码,该设计非常特别,且支持数字颜色的变化,提供8款颜色选择,非常有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
56 8