|
|
|
|
//#region MobileDataList
|
|
|
|
|
MobileDataList = function (divid) {
|
|
|
|
|
this.ParentElement = $(document); //要加入的父容器
|
|
|
|
|
this.id = divid;
|
|
|
|
|
this.ApplicationPath = "";
|
|
|
|
|
var My = this;
|
|
|
|
|
this.IsSlide = true; //是否滑动
|
|
|
|
|
this.PageIndex = 1;
|
|
|
|
|
this.PageSize = 10;
|
|
|
|
|
this.PageCount = 0;
|
|
|
|
|
this.RowCount = 0;
|
|
|
|
|
this.LoadTitleID = "div_more";
|
|
|
|
|
this.CellTemplate = "";
|
|
|
|
|
this.DataSource = new Array(); //接受一个数组对象
|
|
|
|
|
var EventHandler = new Sys.EventHandlerList();
|
|
|
|
|
var PagerFlag=false;
|
|
|
|
|
|
|
|
|
|
//#region 初始化
|
|
|
|
|
this.Init = function () {
|
|
|
|
|
WindowSlide(); //滑动
|
|
|
|
|
$("#" + My.LoadTitleID + " span").click(function () {
|
|
|
|
|
var title = $(this).text();
|
|
|
|
|
if (title == "没有更多的数据") return;
|
|
|
|
|
PagerFlag = true;
|
|
|
|
|
My.PageIndex +=1;
|
|
|
|
|
OnPageIndexChanged();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
//#region 绑定数据源
|
|
|
|
|
this.DataBind = function (source) {
|
|
|
|
|
var html = new Sys.StringBuilder();
|
|
|
|
|
$(source).each(function () {
|
|
|
|
|
var index = My.DataSource.length;
|
|
|
|
|
Array.add(My.DataSource, this);
|
|
|
|
|
var temp = this;
|
|
|
|
|
var controlHtml = My.CellTemplate;
|
|
|
|
|
StringArray = controlHtml.match(new RegExp("\{Bind [^}]*\}", "ig"));
|
|
|
|
|
if (StringArray != null) {
|
|
|
|
|
for (var i = 0; i < StringArray.length; i++) {
|
|
|
|
|
var ss = StringArray[i].substr(6, StringArray[i].length - 7).split(","); //分隔字符串
|
|
|
|
|
if (ss[0] == "index") {
|
|
|
|
|
controlHtml = controlHtml.replace("{Bind " + ss[0] + "}", index);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
var value = temp[ss[0]]; //数据源的值
|
|
|
|
|
if (value == null) value = "";
|
|
|
|
|
if (this.CellFormatter)
|
|
|
|
|
value = this.CellFormatter(value);
|
|
|
|
|
if (ss.length == 1) {
|
|
|
|
|
//不需要格式化
|
|
|
|
|
controlHtml = controlHtml.replace("{Bind " + ss[0] + "}", value)
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (value == "") {
|
|
|
|
|
controlHtml = controlHtml.replace("{Bind " + ss[0] + "," + ss[1] + "}", value);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
var FormatValue = "";
|
|
|
|
|
if (ss[1] != "encode") {
|
|
|
|
|
if (ss[1].length == 2 && ss[1].substr(0, 1) == "d") {
|
|
|
|
|
FormatValue = parseFloat(value.localeFormat("n" + ss[1].substr(1, 1))).localeFormat("d");
|
|
|
|
|
} else { FormatValue = value.localeFormat(ss[1]); }
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
FormatValue = escape(value);
|
|
|
|
|
}
|
|
|
|
|
controlHtml = controlHtml.replace("{Bind " + ss[0] + "," + ss[1] + "}", FormatValue)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
controlHtml = controlHtml.replace(new RegExp("checked='false'", "ig"), "");
|
|
|
|
|
controlHtml = controlHtml.replace(new RegExp("checked=''", "ig"), "");
|
|
|
|
|
html.append(controlHtml);
|
|
|
|
|
});
|
|
|
|
|
if (My.PageCount > 1) {
|
|
|
|
|
//$("#" + My.LoadTitleID).hide();
|
|
|
|
|
if (My.PageIndex == My.PageCount) {
|
|
|
|
|
$("#" + My.LoadTitleID + " span").text("没有更多的数据");
|
|
|
|
|
$("#" + My.LoadTitleID + " .weui-loading").hide();
|
|
|
|
|
} else {
|
|
|
|
|
$("#" + My.LoadTitleID + " .weui-loading").show();
|
|
|
|
|
$("#" + My.LoadTitleID + " span").text("点击加载更多");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//$("#" + My.LoadTitleID).hide();
|
|
|
|
|
$("#" + My.LoadTitleID + " span").text("没有更多的数据");
|
|
|
|
|
$("#" + My.LoadTitleID + " .weui-loading").hide();
|
|
|
|
|
}
|
|
|
|
|
if (My.PageIndex == 1) {
|
|
|
|
|
$("#" + My.id, My.ParentElement).html(html.toString());
|
|
|
|
|
} else {
|
|
|
|
|
$("#" + My.id, My.ParentElement).append(html.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 获取行对应数据源对象
|
|
|
|
|
this.Get_Model = function (RowIndex) {
|
|
|
|
|
return this.DataSource[RowIndex];
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 设置总行数
|
|
|
|
|
this.Set_RowCount = function (RowCount) {
|
|
|
|
|
PagerFlag = false;
|
|
|
|
|
My.RowCount = RowCount;
|
|
|
|
|
if (RowCount == 0) {
|
|
|
|
|
My.PageIndex = 1;
|
|
|
|
|
My.PageCount = 0;
|
|
|
|
|
} else {
|
|
|
|
|
My.PageCount = Math.ceil(My.RowCount / My.PageSize);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 获取总页数
|
|
|
|
|
this.Get_PageIndex = function () {
|
|
|
|
|
if (My.PageIndex > 1) {
|
|
|
|
|
if (My.PagerFlag == false) {
|
|
|
|
|
My.PageIndex = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return My.PageIndex;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 获取每页行数
|
|
|
|
|
this.Get_PageSize = function () {
|
|
|
|
|
return My.PageSize;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
//#region 分页改变事件
|
|
|
|
|
this.add_PageIndexChanged = function (handler) {
|
|
|
|
|
EventHandler.addHandler('PageIndexChanged', handler);
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 分页改变事件
|
|
|
|
|
function OnPageIndexChanged() {
|
|
|
|
|
var h = EventHandler.getHandler('PageIndexChanged');
|
|
|
|
|
if (h) h(this, Sys.EventArgs.Empty);
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 滑动删除
|
|
|
|
|
function WindowSlide() {
|
|
|
|
|
if (My.IsSlide == false) return;
|
|
|
|
|
window.addEventListener('load', function () {
|
|
|
|
|
var initX; //触摸位置
|
|
|
|
|
var moveX; //滑动时的位置
|
|
|
|
|
var X = 0; //移动距离
|
|
|
|
|
var objX = 0; //目标对象位置
|
|
|
|
|
var start;
|
|
|
|
|
|
|
|
|
|
window.addEventListener('touchstart', function (event) {
|
|
|
|
|
var touches = event.touches[0];
|
|
|
|
|
start = {
|
|
|
|
|
x: touches.pageX, // 横坐标
|
|
|
|
|
y: touches.pageY // 纵坐标
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// event.preventDefault();
|
|
|
|
|
var obj = event.target.parentNode;
|
|
|
|
|
var obj2 = event.target.parentNode.parentNode;
|
|
|
|
|
var obj3 = event.target.parentNode.parentNode.parentNode;
|
|
|
|
|
if (obj.className == "list-li") {
|
|
|
|
|
initX = event.targetTouches[0].pageX;
|
|
|
|
|
objX = (obj.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
if (obj2.className == "list-li") {
|
|
|
|
|
initX = event.targetTouches[0].pageX;
|
|
|
|
|
objX = (obj2.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
if (obj3.className == "list-li") {
|
|
|
|
|
initX = event.targetTouches[0].pageX;
|
|
|
|
|
objX = (obj3.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
}
|
|
|
|
|
if (objX == 0) {
|
|
|
|
|
window.addEventListener('touchmove', function (event) {
|
|
|
|
|
//event.preventDefault();
|
|
|
|
|
var touches = event.touches[0];
|
|
|
|
|
|
|
|
|
|
delta = {
|
|
|
|
|
x: touches.pageX - start.x,
|
|
|
|
|
y: touches.pageY - start.y
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 横向位移大于纵向位移,阻止纵向滚动
|
|
|
|
|
if (Math.abs(delta.x) > Math.abs(delta.y)) {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var obj = event.target.parentNode;
|
|
|
|
|
var obj2 = event.target.parentNode.parentNode;
|
|
|
|
|
var obj3 = event.target.parentNode.parentNode.parentNode;
|
|
|
|
|
if (obj.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
} else if (X < 0) {
|
|
|
|
|
var l = Math.abs(X);
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
if (l > 80) {
|
|
|
|
|
l = 80;
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj2.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
} else if (X < 0) {
|
|
|
|
|
var l = Math.abs(X);
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
if (l > 80) {
|
|
|
|
|
l = 80;
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj3.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
} else if (X < 0) {
|
|
|
|
|
var l = Math.abs(X);
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
if (l > 80) {
|
|
|
|
|
l = 80;
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + -l + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else if (objX < 0) {
|
|
|
|
|
window.addEventListener('touchmove', function (event) {
|
|
|
|
|
// event.preventDefault();
|
|
|
|
|
var obj = event.target.parentNode;
|
|
|
|
|
var obj2 = event.target.parentNode.parentNode;
|
|
|
|
|
var obj3 = event.target.parentNode.parentNode.parentNode;
|
|
|
|
|
if (obj.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
var r = -80 + Math.abs(X);
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
if (r > 0) {
|
|
|
|
|
r = 0;
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
}
|
|
|
|
|
} else { //向左滑动
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj2.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
var r = -80 + Math.abs(X);
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
if (r > 0) {
|
|
|
|
|
r = 0;
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
}
|
|
|
|
|
} else { //向左滑动
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj3.className == "list-li") {
|
|
|
|
|
moveX = event.targetTouches[0].pageX;
|
|
|
|
|
X = moveX - initX;
|
|
|
|
|
if (X >= 0) {
|
|
|
|
|
var r = -80 + Math.abs(X);
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
if (r > 0) {
|
|
|
|
|
r = 0;
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + r + "px)";
|
|
|
|
|
}
|
|
|
|
|
} else { //向左滑动
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
window.addEventListener('touchend', function (event) {
|
|
|
|
|
// event.preventDefault();
|
|
|
|
|
var obj = event.target.parentNode;
|
|
|
|
|
var obj2 = event.target.parentNode.parentNode;
|
|
|
|
|
var obj3 = event.target.parentNode.parentNode.parentNode;
|
|
|
|
|
if (obj.className == "list-li") {
|
|
|
|
|
objX = (obj.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
if (objX > -40) {
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
objX = 0;
|
|
|
|
|
} else {
|
|
|
|
|
obj.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
objX = -80;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj2.className == "list-li") {
|
|
|
|
|
objX = (obj2.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
if (objX > -40) {
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
objX = 0;
|
|
|
|
|
} else {
|
|
|
|
|
obj2.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
objX = -80;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (obj3.className == "list-li") {
|
|
|
|
|
objX = (obj3.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
|
|
|
|
|
if (objX > -40) {
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + 0 + "px)";
|
|
|
|
|
objX = 0;
|
|
|
|
|
} else {
|
|
|
|
|
obj3.style.WebkitTransform = "translateX(" + -80 + "px)";
|
|
|
|
|
objX = -80;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|