自定义控件之 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自定义控件之自定义组合控件(三),常言 ...
随机推荐
- Ubuntu 16.04 802.1x 有线连接
Ubuntu下使用MentoHUST搞定 锐捷校园网认证网络 http://www.linuxidc.com/Linux/2013-10/91157.htm
- Sie sind das Essen und wir sind die Jaeger!
WCF http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html HTTP 数据库分库分表 读写分离 负载均衡 wind ...
- listener.ora增加监听端口
一个简单的listener.ora # listener.ora Network Configuration File: d:\app\zyd\product\11.2.0\dbhome_1\netw ...
- 关于学习Knockoutjs--入门(二)
这两天终于闲一丢丢了,可以有多点时间学习一下拉.接下来要写到的还是Knockoutjs. Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. 声明式绑定 3. 模版机制 ...
- h5移动端前端性能优化
1.脚本优化 (1)减少重绘和回流 (2)缓存Dom选择与计算 (3)缓存列表length (4)尽量使用事件代码,避免批量绑定事件 (5)尽量使用ID选择器 (6)使用touchstart.touc ...
- PHPCMS V9 框架代码分析(入口程序)
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口. 入口程序是在前期处理用户请求的引导程序.它是 ...
- python-操作excel数据文件
1.excel文件操作 读文件xlrd模块:
- NET中的类型和装箱/拆箱原理
谈到装箱拆箱,DebugLZQ相信给位园子里的博友一定可以娓娓道来,大概的意思就是值类型和引用类型的相互转换呗---值类型到引用类型叫装箱,反之则叫拆箱.这当然没有问题,可是你只知道这么多,那么Deb ...
- CI框架多个表前缀,如何使用框架语句querybuilder
最近用CI框架遇到一个问题.2个前提条件: 1.数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样: 2.数据库操作又想使用数据库操作语句query ...
- 三联运算&&字节码转换
三联运算 if 1 == 1: name = 'alex'else: name = 'sb' name = 'alex' if 1 == 1 else 'sb lambda f2 = lambda a ...