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.

210 lines
6.9 KiB
JavaScript

2 months ago
/// <reference path="../Scripts/MicrosoftAjax.js" />
/// <reference path="../Scripts/jquery.min.js" />
/// <reference path="fancybox/jquery.fancybox-1.3.4.js" />
/// <reference path="jquery.easyui.min.js" />
Custom_BaseCode = function () {
this.ApplicationPath = "../";
this.ControlID = "Window_Custom_BaseCode";
this.ParentElement = null; //要加入的父容器
var My = this;
var KeyName = "";
var InputType = 0; //0只输入名称,1名称与代码
var cmdSave = null;
var cmdAdd = null;
var DataGrid1 = null;
var datagrid1 = null;
var EventHandler = new Sys.EventHandlerList();
//#region 加载
this.Load = function () {
cmdSave = My.ControlID + "cmdSave";
cmdAdd = My.ControlID + "cmdAdd";
DataGrid1 = My.ControlID + "DataGrid1";
datagrid1 = new nblf.ui.DataGrid(DataGrid1);
Init();
$("#" + cmdAdd, My.ParentElement).click(function () {
AddRow();
});
$("#" + cmdSave, My.ParentElement).click(function () {
Save();
});
$("#" + DataGrid1 + " span[CommandName]").live("click", function () {
var CommandName = $(this).attr("CommandName");
var index = $(this).parentsUntil("tr").parent().attr("index");
//var model = datagrid1.Get_Model(index);
if (CommandName == "cmdDel") {
datagrid1.Del_Row(index);
}
});
}
//#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 style='display: none;'>");
htmlString.append("<div id='" + My.ControlID + "' title='编辑' style='width: 500px; height: auto;' >");
htmlString.append("<table class='tableAll' style='width:98%;'><tr><td><span id='" + cmdAdd + "' style='color: #0000FF; cursor: pointer; text-decoration: underline;'><img src='../images/add.ico'>新增</span></td></tr>");
htmlString.append("<tr><td><div id='" + DataGrid1 + "' class='DataGridStyle'></div></td></tr>");
htmlString.append("<tr><td style='text-align: center'><input id='" + cmdSave + "' class='icon-save' type='button' value='&nbsp;&nbsp;&nbsp;保存' /></td></tr></table>");
htmlString.append("</div>");
My.ParentElement.append(htmlString.toString());
CreateDataGrid();
}
//#endregion
//#region 初始化DataGrid
function CreateDataGrid() {
Array.clear(datagrid1.Columns);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "名称";
col.CellTemplate = "<input ColName='Name' type='text' value='{Bind Name}' style='width:99%;text-align:center;' />";
Array.add(datagrid1.Columns, col);
if (InputType == 1) {
col = new nblf.ui.DataGridColumn();
col.HeaderText = "代码";
col.CellTemplate = "<input ColName='Code' type='text' value='{Bind Code}' style='width:99%;text-align:center;' />";
Array.add(datagrid1.Columns, col);
}
col = new nblf.ui.DataGridColumn();
col.HeaderText = "是否使用";
col.CreateFieldCheckBox("IsUse", true);
Array.add(datagrid1.Columns, col);
col = new nblf.ui.DataGridColumn();
col.HeaderText = "操作";
col.Width = "100px";
col.CellTemplate = "<span CommandName='cmdDel' style='color: #0000FF;cursor:pointer;text-decoration: underline;'>删除</span>";
Array.add(datagrid1.Columns, col);
datagrid1.IsFixHeader = false;
datagrid1.ShowIndexColumn = false;
datagrid1.AllowPaging = false;
datagrid1.Width = "100%";
datagrid1.SelectMode = nblf.ui.SelectMode.None;
datagrid1.Init();
}
//#endregion
//#region 显示
this.Show = function (KeyName) {
InputType = 0;
CreateDataGrid();
this.KeyName = KeyName;
Read();
$.fancybox({
'autoScale': false,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'href': '#' + My.ControlID,
'onClosed': function () {
OnSave();
}
}, 0);
}
//#endregion
//#region 显示
this.Show2 = function (KeyName) {
InputType = 1;
CreateDataGrid();
this.KeyName = KeyName;
Read();
$.fancybox({
'autoScale': false,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'href': '#' + My.ControlID,
'onClosed': function () {
OnSave();
}
}, 0);
}
//#endregion
//#region 读取设置
function Read() {
var param = new Object();
param.KeyName = My.KeyName;
$.ajax({
url: My.ApplicationPath + "BaseData/BaseData.asmx/GetList_Sys_BaseCodeList",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
success: function (data) {
datagrid1.DataBind(data.d);
if (data.d.length == 0) AddRow();
}
});
}
//#endregion
//#region 新增
function AddRow(){
var model = new Object();
model.Code = "";
model.Name = "";
model.IsUse = true;
datagrid1.Add_Row(model);
}
//#endregion
//#region 保存
function Save() {
datagrid1.UpdateDataSource();
var param = new Object();
param.KeyName = My.KeyName;
param.ListModel = datagrid1.DataSource;
var error = "";
$(param.ListModel).each(function (i) {
if (this.Name == "") {
error = "第"+(i+1)+"行名称不能为空";
return false;
}
});
if (error != "") {
alert(error);
return;
}
if (InputType == 1) {
$(param.ListModel).each(function (i) {
if (this.Code == "") {
error = "第" + (i + 1) + "行代码不能为空";
return false;
}
});
}
if (error != "") {
alert(error);
return;
}
$.ajax({
url: My.ApplicationPath + "BaseData/BaseData.asmx/Save_Sys_BaseCodeList",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
success: function (data) {
OnSave();
alert("保存成功");
$.fancybox.close();
}
});
}
//#endregion
//#region 点击确定时触发
this.Save = function (handler) {
EventHandler.addHandler('Save', handler);
}
//#endregion
//#region 点击确定时触发
function OnSave() {
var h = EventHandler.getHandler('Save');
if (h) h(My.KeyName);
}
//#endregion
}