You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

293 lines
11 KiB
JavaScript

/// <reference path="../Scripts/MicrosoftAjax.js" />
/// <reference path="../Scripts/jquery.min.js" />
/// <reference path="jquery.easyui.min.js" />
/// <reference path="JSLINQ.js" />
StudentSelect = function () {
this.ApplicationPath = "../";
this.SchID = "";
this.ControlID = "Window_StudentSelect";
this.ParentElement = null; //要加入的父容器
var My = this;
var listClassName = My.ControlID + "listClassName";
var listLeftPerson = My.ControlID + "listLeftPerson";
var listRightPerson = My.ControlID + "listRightPerson";
var cmdPersonRightAll = My.ControlID + "cmdPersonRightAll";
var cmdPersonLeftAll = My.ControlID + "cmdPersonLeftAll";
var cmdPersonRight = My.ControlID + "cmdPersonRight";
var cmdPersonLeft = My.ControlID + "cmdPersonLeft";
var cmdSave = My.ControlID + "cmdSave";
var cmdExit = My.ControlID + "cmdExit";
var RightPerson = null;
var EventHandler = new Sys.EventHandlerList();
//#region 加载
this.Load = function () {
Init();
$.ajaxSetup({
type: "POST",
contentType: "application/json",
dataType: "json",
data: "{}",
cache: false,
dataFilter: function (data, dataType) {
if (data == "") return data;
if (dataType == "json") {
var model = Sys.Serialization.JavaScriptSerializer.deserialize(data);
return model;
}
if (dataType == "jsonString") {
var model = Sys.Serialization.JavaScriptSerializer.deserialize(data);
if (model.d != "") model.d = Sys.Serialization.JavaScriptSerializer.deserialize(model.d);
return model;
}
return data;
},
error: function (xhr, status) {
alert(xhr.responseText);
}
});
// WindowLoadModel.ApplicationPath = "../";
// WindowLoadModel.ControlID = "WindowLoad";
// WindowLoadModel.Isbgiframe = true;
// WindowLoadModel.Load();
BindClass();
$("#" + listClassName, My.ParentElement).change(function () {
RefshRightPerson();
});
$("#" + cmdPersonLeftAll).click(function () {
var options = $("#" + listRightPerson).find("option");
if (options.length == 0) { alert("没有可以移除的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.PersonID == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + PersonID + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonRightAll).click(function () {
var options = $("#" + listLeftPerson).find("option");
if (options.length == 0) { alert("没有可以添加的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.PersonID = $(this).val();
model.PersonName = $(this).text(); ;
Array.add(RightPerson, model);
html.append("<option value='" + model.PersonID + "'>" + model.PersonName + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonLeft).click(function () {
var options = $("#" + listRightPerson).find("option:selected");
if (options.length == 0) { alert("请选择要移除的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.PersonID == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + PersonID + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonRight).click(function () {
var options = $("#" + listLeftPerson).find("option:selected");
if (options.length == 0) { alert("请选择要添加的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.PersonID = $(this).val();
model.PersonName = $(this).text(); ;
Array.add(RightPerson, model);
html.append("<option value='" + model.PersonID + "'>" + model.PersonName + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdSave, My.ParentElement).click(function () {
OnSave();
$("#" + My.ControlID, My.ParentElement).window("close");
});
$("#" + cmdExit, My.ParentElement).click(function () {
$("#" + My.ControlID, My.ParentElement).window("close");
});
$("#" + listLeftPerson, My.ParentElement).dblclick(function () {
var options = $("#" + listLeftPerson).find("option:selected");
if (options.length == 0) { return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.PersonID = $(this).val();
model.PersonName = $(this).text(); ;
Array.add(RightPerson, model);
html.append("<option value='" + model.PersonID + "'>" + model.PersonName + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + listRightPerson, My.ParentElement).dblclick(function () {
var options = $("#" + listRightPerson).find("option:selected");
if (options.length == 0) { return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.PersonID == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + PersonID + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
}
//#endregion
//#region 初始化
function Init() {
if (My.ParentElement == null) My.ParentElement = $(document.body);
if ($("#" + My.ControlID, My.ParentElement).length > 0) return;
var htmlString = new Sys.StringBuilder();
htmlString.append("<div id='" + My.ControlID + "' class='easyui-window' style='width: 400px; height: 320px;' closed='true' modal='true' collapsible='false' minimizable='false' maximizable='false' title='人员选择' shadow='false' >");
htmlString.append("<div>班级:<select id='" + listClassName + "' style='width:150px;'></select></div>");
htmlString.append("<table border='0' cellpadding='0' cellspacing='0'>");
htmlString.append("<tr>");
htmlString.append("<td>未选择人员:</td>");
htmlString.append("<td></td>");
htmlString.append("<td>已选择人员:</td>");
htmlString.append("</tr>");
htmlString.append("<tr>");
htmlString.append(" <td><select id='" + listLeftPerson + "' multiple='multiple' style='width: 150px; height: 200px;'></select></td>");
htmlString.append("<td style='width:80px;' align='center' valign='middle' >");
htmlString.append("<a id='" + cmdPersonRight + "' href='#' class='easyui-linkbutton' iconcls='icon-next' plain='true'>右移</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonRightAll + "' href='#' class='easyui-linkbutton' iconcls='icon-next' plain='true'>全部右移</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonLeft + "' href='#' class='easyui-linkbutton' iconcls='icon-prev' plain='true'>左移</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonLeftAll + "' href='#' class='easyui-linkbutton' iconcls='icon-prev' plain='true'>全部左移</a>");
htmlString.append(" <td><select id='" + listRightPerson + "' multiple='multiple' style='width: 150px; height: 200px;'></select></td>");
htmlString.append("</tr></table>");
htmlString.append("<div style='height:10px;'></div>");
htmlString.append("<div style='text-align: center'><input id='" + cmdSave + "' class='btnClassic' type='button' value='确定' />&nbsp;&nbsp;&nbsp;&nbsp;<input id='" + cmdExit + "' class='btnClassic' type='button' value='取消' /></div>");
My.ParentElement.append(htmlString.toString());
$("#" + My.ControlID, My.ParentElement).find("a").linkbutton();
$("#" + My.ControlID, My.ParentElement).window();
$("#" + My.ControlID, My.ParentElement).window("window").bgiframe();
}
//#endregion
//#region 显示
this.Show = function (ListModel) {
RightPerson = ListModel;
if (RightPerson == null) RightPerson = new Array();
RefshRightPerson();
$("#" + My.ControlID, My.ParentElement).window("open");
}
//#endregion
//#region 绑定班级
function BindClass() {
var param = new Object();
param.SchID = My.SchID;
$.ajax({
url: My.ApplicationPath + "WebSurvey/SurveyService.asmx/GetListClass",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "jsonString",
success: function (data) {
var html = new Sys.StringBuilder();
html.append("<option value='0'>全部</option>");
$(data.d).each(function (i) {
if (i == 0) { html.append("<option value='" + this.ClassID + "' selected>" + this.ClassName + "</option>"); }
else { html.append("<option value='" + this.ClassID + "'>" + this.ClassName + "</option>"); }
});
$('#' + listClassName, My.ParentElement).html(html.toString());
}
});
}
//#endregion
//#region 读取学生信息
function ReadStudent(Persons) {
var param = new Object();
param.SchID = My.SchID;
param.Persons = Persons;
param.ClassID = $("#" + listClassName, My.ParentElement).val();
$.ajax({
url: My.ApplicationPath + "WebSurvey/SurveyService.asmx/GetListStudent",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "jsonString",
success: function (data) {
var html = new Sys.StringBuilder();
$(data.d).each(function (i) {
html.append("<option value='" + this.PersonID + "'>" + this.PersonName + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).html(html.toString());
}
});
}
//#endregion
//#region 刷新已设置人员
function RefshRightPerson() {
var html = new Sys.StringBuilder();
var html2 = new Sys.StringBuilder();
$(RightPerson).each(function (i) {
html.append("<option value='" + this.PersonID + "'>" + this.PersonName + "</option>");
html2.append(this.PersonID + ",");
});
var Persons = html2.toString();
if (Persons != "") Persons = Persons.substr(0, Persons.length - 1);
$('#' + listRightPerson, My.ParentElement).html(html.toString());
ReadStudent(Persons);
}
//#endregion
//#region 选择班级下拉框
this.SelectClass = function (ClassID, Enabled) {
$('#' + listClassName, My.ParentElement).val(ClassID);
if (Enabled == false) { $('#' + listClassName, My.ParentElement).attr("disabled", "disabled"); }
else { $('#' + listClassName, My.ParentElement).removeAttr("disabled"); }
}
//#endregion
//#region 设置班级下拉框是否可用
this.SetClassEnabled = function (Enabled) {
if (Enabled == false) { $('#' + listClassName, My.ParentElement).attr("disabled", "disabled"); }
else { $('#' + listClassName, My.ParentElement).removeAttr("disabled"); }
}
//#endregion
//#region 点击确定时触发
this.Save = function (handler) {
EventHandler.addHandler('Save', handler);
}
//#endregion
//#region 点击确定时触发
function OnSave() {
var h = EventHandler.getHandler('Save');
if (h) h(RightPerson);
}
//#endregion
}