基于ASP.NET的JQueryUI控件开发(2) - JQSlider
来源:互联网 发布:lwip协议栈arp源码详解 编辑:程序博客网 时间:2024/06/14 18:55
先上图:
设计思路:
先看JS的Slider怎么用:
$("#slider").slider({
value:100,
min: 0,
max: 500,
step: 50,
slide: function(event, ui) {
$("#amount").val('$' + ui.value);
}
});
因此设计一个从Panel派生的子类,然后再加上一个隐藏域即可以完成此功能,
控件代码:
- public class JQSlider:Panel
- {
- private int min = 0;
- public event EventHandler ValueChanged;//当值改变时事件
- public int Min//最小值
- {
- get { return min; }
- set { min = value; }
- }
- private int max = 100;
- public int Max//最大值
- {
- get { return max; }
- set { max = value; }
- }
- private int value = 0;
- public int Value//当前值
- {
- get { return this.value; }
- set { this.value = value; }
- }
- private int step = 1;
- public int Step//步长
- {
- get { return step; }
- set { step = value; }
- }
- private HiddenField txt;//隐藏域
- public JQSlider()
- {
- txt = new HiddenField();
- this.Controls.Add(txt);
- }
- private bool autoPostBack = false;//自动回调
- public bool AutoPostBack
- {
- get { return autoPostBack; }
- set { autoPostBack = value; }
- }
- protected override void OnLoad(EventArgs e)//重写Load事件
- {
- base.OnLoad(e);
- string val = this.Page.Request[txt.ClientID];//获取隐藏域中的值
- if (!string.IsNullOrEmpty(val))
- {
- value = int.Parse(val);
- }
- txt.Value = "" + value;
- if (ValueChanged != null&&autoPostBack)//判断是否有事件且自动事件回调
- ValueChanged(this, e);
- }
- public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer)
- {
- string postback = "";
- if (autoPostBack)
- {
- postback = "$('form').submit();";
- }
- base.RenderEndTag(writer);
- //输出JS代码
- writer.Write(string.Format("<script>$(function()|$('#{0}').slider(|value:{1},min:{2},max:{3},step:{4},slide:function(e,u)|$('#{0} :hidden').val(u.value);{5}%%);%);</script>",
- this.ClientID,this.Value,this.Min,this.Max,this.Step,postback).Replace("|","{").Replace("%","}"));
- }
- }
使用非常简单,在页面中拖放一个JQueryManager和一个JQSlider,可以设置期Min,Max,Value,Step,AutoPostBack属性和ValueChanged事件.
服务端代码如下:
- <cc1:JQueryManager ID="JQueryManager1" runat="server" Skins="sunny">
- </cc1:JQueryManager>
- <cc1:JQSlider ID="JQSlider1" runat="server" Width="200px" AutoPostBack="True"
- onvaluechanged="JQSlider1_ValueChanged" Step="5">
- </cc1:JQSlider>
客户生成端代码如下:
- <div id="JQSlider1" style="width:200px;">
- <input type="hidden" name="ctl02" id="ctl02" value="25" />
- </div><script>$(function(){$('#JQSlider1').slider({value:25,min:0,max:100,step:5,slide:function(e,u){$('#JQSlider1 :hidden').val(u.value);$('form').submit();}});});</script>
- </div>
哈哈完工!待续中....
- 基于ASP.NET的JQueryUI控件开发(2) - JQSlider
- 基于ASP.NET MVC的JQueryUI控件开发(1)
- 基于ASP.NET的JQueryUI控件开发(1) - JQueryScriptManager
- 基于ASP.NET的JQueryUI控件开发(3) - JQDialog
- 基于ASP.NET MVC的JQueryUI控件开发(2) - Tab控件设计
- 基于ASP.NET MVC的JQueryUI控件开发(3) - Accordion控件设计
- 基于ASP.NET MVC的JQueryUI控件开发(4) - DLL封装
- 基于ASP.NET的JQueryUI控件开发(4) - JQTab和JQAccordion
- ASP.NET服务器控件的开发(2)
- asp.net控件开发
- ASP.NET控件开发
- 基于ASP.NET与XML的网络硬盘开发(2)
- 基于asp.net的登录页面开发
- ASP.NET服务器控件的开发(1)
- ASP.NET服务器控件的开发(3)
- ASP.NET服务器控件的开发(4)
- 开发简单的 ASP.NET 服务器控件
- Asp.net自定义控件的开发
- Ubuntu 10.04网络管理器显示“设备未托管”的解决办法
- ubuntu10.04 升级显卡限制驱动后开机动画低分辨率的问题
- 让ubuntu9.10开机自动挂载NTFS分区
- 为grub2加背景图片
- Nothing but for marks
- 基于ASP.NET的JQueryUI控件开发(2) - JQSlider
- Visual C++ 和 C++ 有什么区别?
- TCP/IP简介
- 项目
- [转]更改windows 2003远程桌面连接的端口
- hql中常用函數介紹
- jdk的配置
- [转]windows 2003 开启远程桌面
- 学习