自定义控件之 RadioList
var RadioListObj = function (id, url) {
this.URL = url;//radiobox source URL
this.ID = id;//radioList ID, radio id is ID_radio
this.method = 'get'; //ajax method
this.width = 600; //initial width
this.height = 100; //initial height
this.checkedValue = ""; //radiolist value
this.initialValue = ""; //initial value
this.valueField = "ID";
this.textField = "Name";
this.enable = true; //set the radiolist enable/disabled
this.isVertical = true; //set the radiolist's layout
}
//Set radiolist width
RadioListObj.prototype.setWidth = function (wid) { $("#" + this.ID).css("width", wid); };
//set radiolist height
RadioListObj.prototype.setHeight = function (hei) { $("#" + this.ID).css("height", hei); };
//initial radioList data and load data
RadioListObj.prototype.loadData = function () {
var context = this;
$.ajax({
url: context.URL,
type: context.method,
dataType: "json",
contentType: "application/json;charset=utf-8",
beforeSend: function () {
// add the initial loading radio before getting the source from webservice
$("#" + context.ID).append("<input type='radio' name='" + context.ID + "_radio' value='' checked='checked' />loading..");
context.checkedValue = $("[name='" + context.ID + "_radio']").val();
},
success: function (data) {
//set the initial width and height
$("#" + context.ID).css("width", context.width);
$("#" + context.ID).css("height", context.height);
var style = "";
var lineEnd = "<p/>";
context.source = data;
$("#" + context.ID).empty();
if (context.isVertical) {
style = "style='margin-top:5px;'";
} else {
style = "style='margin-right:2px;'"
lineEnd = "<label style='margin-right:10px;'/>";
}
//add the radioes to the radio list
$(data).each(function (i, item) {
var val = item[context.valueField];
var txt = item[context.textField];
$radio = $("<input type='radio' name='" + context.ID + "_radio' value='" + val + "' " + style + "/>" + txt + lineEnd);
$("#" + context.ID).append($radio);
$radio.on('change', function (evt) {
context.checkedChange($(this).val());
context.setValue($(this).val());
});
});
if (data != null && context.initValue != "") {
context.setValue(context.initialValue);
}
//initial if the radio list is editable
context.enable ? "" : context.setDisabled();
},
error: function (e) {
console.log(e);
},
headers: {
'Token': $("#_requiredToken").val()
}
});
}
// set the radio list enabled
RadioListObj.prototype.setEnabled = function () {
$("[name='" + this.ID + "_radio']").removeAttr("disabled");
}
//set the radio list disabled
RadioListObj.prototype.setDisabled = function () {
$("[name='" + this.ID + "_radio']").attr("disabled", "disabled");
}
//checked change function
RadioListObj.prototype.checkedChange = function (val) {
}
//set the radio list value
RadioListObj.prototype.setValue = function (val) {
$("[name='" + this.ID + "_radio']").removeAttr("checked");
$("[name='" + this.ID + "_radio'][value='" + val + "']").attr("checked", "checked");
this.checkedValue = val;
}
//get the radio list's selected value
RadioListObj.prototype.getValue = function () {
return this.checkedValue;
}
//This code is for radioList test
//$(function () {
// var o = new RadioListObj('ra', '/ResourceAPI/api/Resource/GetWorlds');
// o.loadData();
// //o.setDisabled();
// o.checkedChange = function (select) {
// console.log(select);
// }
// $(document).on("click", function () {
// //o.setEnabled();
// //o.setValue("23617");
// });
//});
自定义控件之 RadioList的更多相关文章
- android自定义控件一站式入门
自定义控件 Android系统提供了一系列UI相关的类来帮助我们构造app的界面,以及完成交互的处理. 一般的,所有可以在窗口中被展示的UI对象类型,最终都是继承自View的类,这包括展示最终内容的非 ...
- ASP.NET MVC学习之母版页和自定义控件的使用
一.母板页_Layout.cshtml类似于传统WebForm中的.master文件,起到页面整体框架重用的目地1.母板页代码预览 <!DOCTYPE html> <html> ...
- C# 自定义控件VS用户控件
1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Con ...
- 自定义控件之 圆形 / 圆角 ImageView
一.问题在哪里? 问题来源于app开发中一个很常见的场景——用户头像要展示成圆的: 二.怎么搞? 机智的我,第一想法就是,切一张中间圆形透明.四周与底色相同.尺寸与头像相同的蒙板图片,盖在 ...
- 如何开发FineReport的自定义控件?
FineReport作为插件化开发的报表软件,有些特殊需求的功能需要自己开发,开发的插件包帆软官方有提提供,可以去帆软论坛上找,本文将主要介绍如何开发一个自定义控件,这里讲讲方法论. 第一步:实例化一 ...
- WPF自定义控件第二 - 转盘按钮控件
继之前那个控件,又做了一个原理差不多的控件.这个控件主要模仿百度贴吧WP版帖子浏览界面左下角那个弹出的按钮盘.希望对大家有帮助. 这个控件和之前的也差不多,为了不让大家白看,文章最后发干货. 由于这个 ...
- 【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的
前些天,看到有网友给我留言,说AdaptiveTrigger在自定义控件(模板化控件)中不能触发.因为当时我正在写其他的代码,就没有去做实验来验证,于是我就给这位网友提了使用GotoVisualSta ...
- WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展
一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要是对文本 ...
- Android自定义控件之自定义ViewGroup实现标签云
前言: 前面几篇讲了自定义控件绘制原理Android自定义控件之基本原理(一),自定义属性Android自定义控件之自定义属性(二),自定义组合控件Android自定义控件之自定义组合控件(三),常言 ...
随机推荐
- html5,实例开发代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- mysql部署到云主机的笔记
写了个程序,需要把数据库部署到云主机上 MySQL基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限 为了安全,新添加一个用户来进行远程登录 登录MYSQL: ...
- python核心编程学习记录之函数与函数式编程
@func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...
- 函数柯里化(Currying)示例
”函数柯里化”是指将多变量函数拆解为单变量的多个函数的依次调用, 可以从高元函数动态地生成批量的低元的函数.可以看成一个强大的函数工厂,结合函数式编程,可以叠加出很BT的能力.下面给出了两个示例,说明 ...
- char类型的字节数
java为:两个字节,C语言中为:1个字节
- python(二)数据类型
一.整数 创建方法 i = 10 i = int(10) i = int("10",base=2) #“”中是几进制的表示,base是选择要表示的进制,如base=2,用2进制的 ...
- Tiles & SiteMesh
Tiles & SiteMesh 这两天在给公司的新项目搭框架,在配tiles框架的时候发现一个小问题: 比如开发团队一共5人,每人10个页面,如果按照简单的tiles框架配置方法,每个 ...
- 4 .Swift函数|闭包
在编程中,我们常把能完成某一特定功能的一组代码,并且带有名字标记类型叫做函数,在C语言中,我们知道函数名就是一个指针,它指向了函数体内代码区的第一行代码的地址,在swift中也具有同样的功效. 在Sw ...
- iOS核心动画学习整理
最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...
- supervisor安装和配置
直接命令 easy_install supervisor 如果报错先安装 yum install python-setuptools,再上面一条命令: 安装成功后显示finished,我们再次进行py ...