按照客户要求消缺
This commit is contained in:
parent
07c779c020
commit
d2a1e7ae19
|
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
用户缓存答案接口完善
|
用户缓存答案接口完善
|
||||||
|
|
||||||
|
1008 第一次
|
||||||
|
1021 去腿痣
|
||||||
|
|
||||||
|
|
||||||
310 ->djr > omc
|
310 ->djr > omc
|
||||||
|
|
||||||
|
|
@ -13,13 +16,32 @@ d28>j45 >hbd-> j200 > d12
|
||||||
|
|
||||||
pro_scene
|
pro_scene
|
||||||
|
|
||||||
指弹 :ultra 1.2
|
指弹 : ultra 1.2
|
||||||
弹唱 : d12 0.7
|
弹唱 : d12 0.7
|
||||||
练习琴: omc 0.2
|
练习琴: omc 0.2
|
||||||
|
|
||||||
主力 214 fg5 d10
|
主力 214 fg5 d10
|
||||||
练习 omcx1e 、 gsmini 、djr
|
练习 omcx1e 、 gsmini 、djr
|
||||||
|
|
||||||
|
End Guitar Strum
|
||||||
|
End Martin D12E
|
||||||
|
End Tayor 814CE
|
||||||
|
End Gibson Hbd
|
||||||
|
End Travel Djr
|
||||||
|
|
||||||
|
主力毕业: Gibson Hbd阿迪 D桶 24.75(628毫米)
|
||||||
|
排除大
|
||||||
|
J45 高音尖锐、抢人声
|
||||||
|
J200 弦长太长 25.5英寸 647毫米
|
||||||
|
Hd28 弦距太高、包边脱胶
|
||||||
|
D12 配置低沙比利
|
||||||
|
|
||||||
|
|
||||||
|
练习毕业: Martin omcx1e,Om桶 24.9(632毫米) 、腰24厘米
|
||||||
|
排除小
|
||||||
|
gsmini 弦长短 23.5英寸 596毫米
|
||||||
|
djr 弦长短 24英寸、腰太粗 25厘米
|
||||||
|
|
||||||
|
|
||||||
工业网关4、5、6配置数据导入并保存
|
工业网关4、5、6配置数据导入并保存
|
||||||
开放场景数据表设计
|
开放场景数据表设计
|
||||||
|
|
@ -125,10 +147,10 @@ login_name:登录账号
|
||||||
password:密码
|
password:密码
|
||||||
|
|
||||||
用户退出
|
用户退出
|
||||||
http://172.16.1.254:10014/Handler/User.ashx?action=exit&login_name=sfh01
|
http://172.16.1.254:10014/Handler/User.ashx?action=exit&user_id=USER202512020928394163
|
||||||
参数
|
参数
|
||||||
action=exit
|
action=exit
|
||||||
login_name:登录账号
|
user_id:用户userid
|
||||||
|
|
||||||
|
|
||||||
查询语言
|
查询语言
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,12 @@ namespace VRS.Handler
|
||||||
LoginUser(context);
|
LoginUser(context);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
//用户登录
|
||||||
|
case "ip":
|
||||||
|
QueryIP(context);
|
||||||
|
break;
|
||||||
|
|
||||||
//用户退出
|
//用户退出
|
||||||
case "exit":
|
case "exit":
|
||||||
ExitUser(context);
|
ExitUser(context);
|
||||||
|
|
@ -104,6 +110,26 @@ namespace VRS.Handler
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void QueryIP(HttpContext context)
|
||||||
|
{
|
||||||
|
var ip = "xxyy";
|
||||||
|
if (context.Request.Headers.AllKeys.Contains("X-Forwarded-For"))
|
||||||
|
{
|
||||||
|
ip = context.Request.Headers["X-Forwarded-For"];
|
||||||
|
// return forwardedFor.First().Split(',').First().Trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (context.Request.Headers.AllKeys.Contains("X-Real-IP"))
|
||||||
|
{
|
||||||
|
ip = context.Request.Headers["X-Real-IP"];
|
||||||
|
// return forwardedFor.First().Split(',').First().Trim();
|
||||||
|
}
|
||||||
|
ip = context.Request.UserAgent;
|
||||||
|
var result = GetResult(true, ip);
|
||||||
|
context.Response.Write(result);
|
||||||
|
context.Response.End();
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查询语言
|
/// 查询语言
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -286,14 +312,16 @@ namespace VRS.Handler
|
||||||
public void ExitUser(HttpContext context)
|
public void ExitUser(HttpContext context)
|
||||||
{
|
{
|
||||||
var ret = string.Empty;
|
var ret = string.Empty;
|
||||||
var login_name = context.Request.Params["login_name"];
|
//var login_name = context.Request.Params["login_name"];
|
||||||
if (string.IsNullOrEmpty(login_name))
|
var user_id = context.Request.Params["user_id"];
|
||||||
|
if (string.IsNullOrEmpty(user_id))
|
||||||
{
|
{
|
||||||
ret = GetResult(false, null, "登录账号不能为空");
|
ret = GetResult(false, null, "user_id不能为空");
|
||||||
context.Response.Write(ret);
|
context.Response.Write(ret);
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
}
|
}
|
||||||
var userModel = bll.GetModelList(string.Format(" login_name = '{0}' ", login_name)).FirstOrDefault();
|
//var userModel = bll.GetModelList(string.Format(" login_name = '{0}' ", login_name)).FirstOrDefault();
|
||||||
|
var userModel = bll.GetModel(user_id);
|
||||||
if (null != userModel)
|
if (null != userModel)
|
||||||
{
|
{
|
||||||
userModel.id_card = "";
|
userModel.id_card = "";
|
||||||
|
|
@ -306,7 +334,7 @@ namespace VRS.Handler
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var result = GetResult(false, null, "账号不存在!");
|
var result = GetResult(false, null, "更新失败!");
|
||||||
context.Response.Write(result);
|
context.Response.Write(result);
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
}
|
}
|
||||||
|
|
@ -314,7 +342,7 @@ namespace VRS.Handler
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var result = GetResult(false, null, "账号不存在!");
|
var result = GetResult(false, null, "user_id账号不存在!");
|
||||||
context.Response.Write(result);
|
context.Response.Write(result);
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
}
|
}
|
||||||
|
|
@ -392,19 +420,20 @@ namespace VRS.Handler
|
||||||
{
|
{
|
||||||
if (userModel.login_time.HasValue)
|
if (userModel.login_time.HasValue)
|
||||||
{
|
{
|
||||||
var old_ip = userModel.id_card;
|
//var old_ip = userModel.id_card;
|
||||||
var current_ip = context.Request.UserHostAddress;
|
//var current_ip = context.Request.UserHostAddress; //$$$$
|
||||||
if (old_ip != current_ip)
|
//if (old_ip != current_ip)
|
||||||
{
|
// {
|
||||||
var minutues = (DateTime.Now.Subtract(userModel.login_time.Value).TotalSeconds) / 60;
|
var minutues = (DateTime.Now.Subtract(userModel.login_time.Value).TotalSeconds) / 60;
|
||||||
var stay_minutes = config.user_stay_minutes;
|
var stay_minutes = config.user_stay_minutes;
|
||||||
if (minutues < stay_minutes)
|
if (minutues < stay_minutes)
|
||||||
{
|
{
|
||||||
var go = GetResult(false, null, "用户已登录,IP:" + old_ip);
|
//var go = GetResult(false, null, "用户已登录,IP:" + old_ip);
|
||||||
|
var go = GetResult(false, null, "用户已登录");
|
||||||
context.Response.Write(go);
|
context.Response.Write(go);
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -463,7 +492,7 @@ namespace VRS.Handler
|
||||||
|
|
||||||
var update_user = bll.GetModel(userModel.user_id);
|
var update_user = bll.GetModel(userModel.user_id);
|
||||||
update_user.login_time = DateTime.Now;
|
update_user.login_time = DateTime.Now;
|
||||||
update_user.id_card = context.Request.UserHostAddress;
|
update_user.id_card = context.Request.UserHostAddress; //$$$$
|
||||||
bll.Update(update_user);
|
bll.Update(update_user);
|
||||||
|
|
||||||
userModel.password = "";
|
userModel.password = "";
|
||||||
|
|
@ -629,10 +658,15 @@ namespace VRS.Handler
|
||||||
context.Response.Write(ret);
|
context.Response.Write(ret);
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
}
|
}
|
||||||
|
#region 过滤学校 $$$$
|
||||||
|
/*
|
||||||
if (!string.IsNullOrEmpty(user.school_id))
|
if (!string.IsNullOrEmpty(user.school_id))
|
||||||
{
|
{
|
||||||
where = where + " and school_id='" + user.school_id + "' ";
|
where = where + " and school_id='" + user.school_id + "' ";
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(SubjectType))
|
if (!string.IsNullOrEmpty(SubjectType))
|
||||||
{
|
{
|
||||||
where = where + " and subject_type='" + SubjectType + "' ";
|
where = where + " and subject_type='" + SubjectType + "' ";
|
||||||
|
|
|
||||||
|
|
@ -1834,6 +1834,7 @@ namespace VRS
|
||||||
|
|
||||||
Response.Cookies["admin_user_token"].Value = EncryptionAndDecryption.EncryptByLgzn(DateTime.Now.ToString("yyyyMMddHHmmss"));// EncryptionAndDecryption.EncryptByLgzn(user.user_id);
|
Response.Cookies["admin_user_token"].Value = EncryptionAndDecryption.EncryptByLgzn(DateTime.Now.ToString("yyyyMMddHHmmss"));// EncryptionAndDecryption.EncryptByLgzn(user.user_id);
|
||||||
Response.Cookies["admin_user_token"].Values.Add("admin_token", EncryptionAndDecryption.EncryptByLgzn(user_desc));
|
Response.Cookies["admin_user_token"].Values.Add("admin_token", EncryptionAndDecryption.EncryptByLgzn(user_desc));
|
||||||
|
|
||||||
log.write_log("登录后台。");
|
log.write_log("登录后台。");
|
||||||
if (true)
|
if (true)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -241,8 +241,8 @@
|
||||||
<telerik:GridBoundColumn DataField="batch_id" HeaderStyle-Height="32" ItemStyle-Height="32" HeaderText="ID" Visible="false">
|
<telerik:GridBoundColumn DataField="batch_id" HeaderStyle-Height="32" ItemStyle-Height="32" HeaderText="ID" Visible="false">
|
||||||
</telerik:GridBoundColumn>
|
</telerik:GridBoundColumn>
|
||||||
|
|
||||||
<telerik:GridBoundColumn DataField="school" HeaderText="学校">
|
<%--<telerik:GridBoundColumn DataField="school" HeaderText="学校">
|
||||||
</telerik:GridBoundColumn>
|
</telerik:GridBoundColumn>--%>
|
||||||
|
|
||||||
<telerik:GridBoundColumn DataField="subject" HeaderText="练习科目">
|
<telerik:GridBoundColumn DataField="subject" HeaderText="练习科目">
|
||||||
</telerik:GridBoundColumn>
|
</telerik:GridBoundColumn>
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ namespace VRS.Management.Exam
|
||||||
{
|
{
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
#region 加载学校
|
||||||
|
/*
|
||||||
var user = DataService.BLL.admin_user.load_login();
|
var user = DataService.BLL.admin_user.load_login();
|
||||||
var user_login = bll_user.GetModel(user.user_id);
|
var user_login = bll_user.GetModel(user.user_id);
|
||||||
|
|
||||||
|
|
@ -40,6 +42,10 @@ namespace VRS.Management.Exam
|
||||||
tr_school.Visible = false;
|
tr_school.Visible = false;
|
||||||
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
tr_school.Visible = false; //隐藏学校$$$
|
||||||
|
|
||||||
//start.SelectedDate = DateTime.Today;
|
//start.SelectedDate = DateTime.Today;
|
||||||
//end.SelectedDate = DateTime.Today.AddMonths(12);
|
//end.SelectedDate = DateTime.Today.AddMonths(12);
|
||||||
BindSubjectType(dp_type_name, "");
|
BindSubjectType(dp_type_name, "");
|
||||||
|
|
@ -50,6 +56,8 @@ namespace VRS.Management.Exam
|
||||||
protected override void DataLoad()
|
protected override void DataLoad()
|
||||||
{
|
{
|
||||||
StringBuilder query = new StringBuilder(" 1 = 1 ");
|
StringBuilder query = new StringBuilder(" 1 = 1 ");
|
||||||
|
#region 查询学校
|
||||||
|
/*
|
||||||
var userlogin = DataService.BLL.admin_user.load_login();
|
var userlogin = DataService.BLL.admin_user.load_login();
|
||||||
var user_login = bll_user.GetModel(userlogin.user_id);
|
var user_login = bll_user.GetModel(userlogin.user_id);
|
||||||
if (bll_user.IsAdministrator(user_login))
|
if (bll_user.IsAdministrator(user_login))
|
||||||
|
|
@ -63,7 +71,8 @@ namespace VRS.Management.Exam
|
||||||
{
|
{
|
||||||
query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id);
|
query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(txt_subject_name.Text.Trim()))
|
if (!string.IsNullOrWhiteSpace(txt_subject_name.Text.Trim()))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,8 @@ namespace VRS.Management.Exam
|
||||||
base.Page_Load(sender, e);
|
base.Page_Load(sender, e);
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
#region 绑定学校
|
||||||
|
/*
|
||||||
var user = DataService.BLL.admin_user.load_login();
|
var user = DataService.BLL.admin_user.load_login();
|
||||||
var user_login = bll_user.GetModel(user.user_id);
|
var user_login = bll_user.GetModel(user.user_id);
|
||||||
if (bll_user.IsAdministrator(user_login))
|
if (bll_user.IsAdministrator(user_login))
|
||||||
|
|
@ -32,6 +34,9 @@ namespace VRS.Management.Exam
|
||||||
tr_school.Visible = false;
|
tr_school.Visible = false;
|
||||||
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
tr_school.Visible = false; //隐藏学校 $$$
|
||||||
|
|
||||||
BindExam(dp_exam, "", "练习");
|
BindExam(dp_exam, "", "练习");
|
||||||
BindSubjectType(dp_type_name, "");
|
BindSubjectType(dp_type_name, "");
|
||||||
|
|
@ -47,6 +52,9 @@ namespace VRS.Management.Exam
|
||||||
protected void btnSure_Click(object sender, EventArgs e)
|
protected void btnSure_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var model = new DataService.Model.pro_lianxi_batch();
|
var model = new DataService.Model.pro_lianxi_batch();
|
||||||
|
|
||||||
|
#region 学校检查并赋值
|
||||||
|
/*
|
||||||
var user = DataService.BLL.admin_user.load_login();
|
var user = DataService.BLL.admin_user.load_login();
|
||||||
var user_login = bll_user.GetModel(user.user_id);
|
var user_login = bll_user.GetModel(user.user_id);
|
||||||
if (bll_user.IsAdministrator(user_login))
|
if (bll_user.IsAdministrator(user_login))
|
||||||
|
|
@ -65,6 +73,8 @@ namespace VRS.Management.Exam
|
||||||
{
|
{
|
||||||
model.school_id = user_login.school_id;
|
model.school_id = user_login.school_id;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(batch_name.Text.Trim()))
|
if (string.IsNullOrEmpty(batch_name.Text.Trim()))
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,8 @@ namespace VRS.Management.Exam
|
||||||
|
|
||||||
ddp_state.SelectedValue = model.state.ToString();
|
ddp_state.SelectedValue = model.state.ToString();
|
||||||
dp_type_name.SelectedValue = model.subject_type;
|
dp_type_name.SelectedValue = model.subject_type;
|
||||||
|
|
||||||
|
tr_unit.Visible = false; //隐藏学校 $$$$
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -80,11 +82,14 @@ namespace VRS.Management.Exam
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var id = Request.Params["Id"];
|
var id = Request.Params["Id"];
|
||||||
if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' and school_id='{1}' ", batch_name.Text.Trim(), model.school_id)) > 0)
|
|
||||||
|
//if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' and school_id='{1}' ", batch_name.Text.Trim(), model.school_id)) > 0) //$$$$
|
||||||
|
if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' ", batch_name.Text.Trim())) > 0)
|
||||||
{
|
{
|
||||||
RadAjaxManager1.Alert("练习场次考场名称称禁止重复!");
|
RadAjaxManager1.Alert("练习场次考场名称称禁止重复!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(dp_exam.SelectedValue))
|
if (string.IsNullOrEmpty(dp_exam.SelectedValue))
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,13 @@ namespace VRS.Management.Exam
|
||||||
tr_school.Visible = false;
|
tr_school.Visible = false;
|
||||||
//BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
//BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
||||||
}
|
}
|
||||||
start.SelectedDate = DateTime.Today.AddMonths(-3);
|
|
||||||
|
//start.SelectedDate = DateTime.Today.AddMonths(-3);
|
||||||
//end.SelectedDate = DateTime.Today.AddMonths(12);
|
//end.SelectedDate = DateTime.Today.AddMonths(12);
|
||||||
|
|
||||||
|
start.SelectedDate = DateTime.Today.AddDays(-365);
|
||||||
|
end.SelectedDate = DateTime.Today;
|
||||||
|
|
||||||
BindSceneBase(dp_scene, "");
|
BindSceneBase(dp_scene, "");
|
||||||
DataLoad();
|
DataLoad();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<a href="javascript:void(0)"><i class="mdi mdi-camera-metering-matrix"></i>成绩查询</a>
|
<a href="javascript:void(0)"><i class="mdi mdi-camera-metering-matrix"></i>成绩查询</a>
|
||||||
<ul class="nav nav-subnav">
|
<ul class="nav nav-subnav">
|
||||||
<li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=1"><i class="mdi mdi-camera-metering-spot"></i>实训成绩</a> </li>
|
<li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=1"><i class="mdi mdi-camera-metering-spot"></i>实训成绩</a> </li>
|
||||||
<li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=0"><i class="mdi mdi-camera-metering-center"></i>三维考试</a> </li>
|
<li class="nav-item hidden"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=0"><i class="mdi mdi-camera-metering-center"></i>三维考试</a> </li>
|
||||||
<li class="nav-item"><a class="multitabs" href="VSAT/ResultQueryExamBatch.aspx?lianxi=1"><i class="mdi mdi-camera-metering-center"></i>考试成绩</a> </li>
|
<li class="nav-item"><a class="multitabs" href="VSAT/ResultQueryExamBatch.aspx?lianxi=1"><i class="mdi mdi-camera-metering-center"></i>考试成绩</a> </li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -75,7 +75,7 @@
|
||||||
<li class="nav-item show"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=TheoryBaseKnow"><i class="mdi mdi-home-automation"></i>知识领域</a> </li>
|
<li class="nav-item show"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=TheoryBaseKnow"><i class="mdi mdi-home-automation"></i>知识领域</a> </li>
|
||||||
|
|
||||||
<li class="nav-item show" runat="server" id="li_SubjectType"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectType"><i class="mdi mdi-keyboard"></i>科目类别</a> </li>
|
<li class="nav-item show" runat="server" id="li_SubjectType"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectType"><i class="mdi mdi-keyboard"></i>科目类别</a> </li>
|
||||||
<li class="nav-item show" runat="server" id="li_SubjectList"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectList"><i class="mdi mdi-format-list-bulleted"></i>科目列表</a> </li>
|
<li class="nav-item hidden" runat="server" id="li_SubjectList"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectList"><i class="mdi mdi-format-list-bulleted"></i>科目列表</a> </li>
|
||||||
<%--<li class="nav-item show hidden"><a class="multitabs" href="VSAT/ResultQuery.aspx"><i class="mdi mdi-note-multiple-outline"></i>成绩查询</a> </li>--%>
|
<%--<li class="nav-item show hidden"><a class="multitabs" href="VSAT/ResultQuery.aspx"><i class="mdi mdi-note-multiple-outline"></i>成绩查询</a> </li>--%>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,15 @@ namespace VRS.Management
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (bll_user.IsSchoolAdministrator(userModel))
|
||||||
|
{
|
||||||
|
li_log.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
li_log.Visible = false;
|
||||||
|
}
|
||||||
li_school.Visible = false;
|
li_school.Visible = false;
|
||||||
li_log.Visible = false;
|
|
||||||
li_SceneBase.Visible = false;
|
li_SceneBase.Visible = false;
|
||||||
li_SubjectType.Visible = false;
|
li_SubjectType.Visible = false;
|
||||||
li_SubjectList.Visible = false;
|
li_SubjectList.Visible = false;
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,10 @@ namespace VRS.Management.VSAT
|
||||||
tr_school.Visible = false;
|
tr_school.Visible = false;
|
||||||
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
||||||
}
|
}
|
||||||
start.SelectedDate = DateTime.Today;
|
//start.SelectedDate = DateTime.Today;
|
||||||
end.SelectedDate = DateTime.Today.AddMonths(12);
|
// end.SelectedDate = DateTime.Today.AddMonths(12);
|
||||||
|
start.SelectedDate = DateTime.Today.AddDays(-365);
|
||||||
|
end.SelectedDate = DateTime.Today;
|
||||||
DataLoad();
|
DataLoad();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,15 @@
|
||||||
oWnd.center();
|
oWnd.center();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function allowOnlyNumbers(sender, eventArgs) {
|
||||||
|
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
|
||||||
|
//console.log(keyCode);
|
||||||
|
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
|
||||||
|
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
|
||||||
|
eventArgs.set_cancel(true); // 取消非数字按键输入
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function refreshGrid(args, msg) {
|
function refreshGrid(args, msg) {
|
||||||
if (!args) {
|
if (!args) {
|
||||||
$("#btnSelect").click();
|
$("#btnSelect").click();
|
||||||
|
|
@ -358,7 +367,7 @@
|
||||||
<Selecting AllowRowSelect="False" />
|
<Selecting AllowRowSelect="False" />
|
||||||
<Resizing AllowColumnResize="true" />
|
<Resizing AllowColumnResize="true" />
|
||||||
</ClientSettings>
|
</ClientSettings>
|
||||||
<MasterTableView DataKeyNames="result_id,theory_base_id,r1,r2,r3" ClientDataKeyNames="result_id,theory_base_id,r1,r2,r3">
|
<MasterTableView DataKeyNames="id,result_id,theory_base_id,r1,r2,r3" ClientDataKeyNames="id,result_id,theory_base_id,r1,r2,r3">
|
||||||
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
|
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
|
||||||
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
|
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
|
||||||
<HeaderStyle Width="20px"></HeaderStyle>
|
<HeaderStyle Width="20px"></HeaderStyle>
|
||||||
|
|
@ -394,8 +403,21 @@
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</telerik:GridTemplateColumn>
|
</telerik:GridTemplateColumn>
|
||||||
<%-- <telerik:GridBoundColumn DataField="result_desc" HeaderText="结果" HeaderStyle-Width="60"></telerik:GridBoundColumn>--%>
|
<%-- <telerik:GridBoundColumn DataField="result_desc" HeaderText="结果" HeaderStyle-Width="60"></telerik:GridBoundColumn>--%>
|
||||||
<%-- <telerik:GridBoundColumn DataField="score" HeaderText="得分" HeaderStyle-Width="90"></telerik:GridBoundColumn>--%>
|
<%--<telerik:GridBoundColumn DataField="score" HeaderText="得分" HeaderStyle-Width="90">
|
||||||
<%-- <telerik:GridBoundColumn DataField="total" HeaderText="分数" HeaderStyle-Width="90"></telerik:GridBoundColumn>--%>
|
|
||||||
|
</telerik:GridBoundColumn>--%>
|
||||||
|
<telerik:GridTemplateColumn HeaderText="得分" HeaderStyle-Width="130">
|
||||||
|
<ItemTemplate>
|
||||||
|
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray"
|
||||||
|
AutoPostBack="false" Width="50px" Text='0' AutoCompleteType="Disabled">
|
||||||
|
<ClientEvents OnKeyPress="allowOnlyNumbers" />
|
||||||
|
|
||||||
|
</telerik:RadTextBox>
|
||||||
|
<asp:Button runat="server" Text="保存" Width="48" ID="btnSaveOneJianda" OnClick="btnSaveOneJianda_Click" />
|
||||||
|
</ItemTemplate>
|
||||||
|
</telerik:GridTemplateColumn>
|
||||||
|
|
||||||
|
<telerik:GridBoundColumn DataField="total" HeaderText="分数" HeaderStyle-Width="90"></telerik:GridBoundColumn>
|
||||||
|
|
||||||
<%-- <telerik:GridBoundColumn DataField="create_time" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" >
|
<%-- <telerik:GridBoundColumn DataField="create_time" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" >
|
||||||
</telerik:GridBoundColumn>--%>
|
</telerik:GridBoundColumn>--%>
|
||||||
|
|
@ -450,9 +472,9 @@
|
||||||
</UpdatedControls>
|
</UpdatedControls>
|
||||||
</telerik:AjaxSetting>
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
|
<telerik:AjaxSetting AjaxControlID="btnSaveOneJianda">
|
||||||
<UpdatedControls>
|
<UpdatedControls>
|
||||||
<telerik:AjaxUpdatedControl ControlID="grdList" />
|
<telerik:AjaxUpdatedControl ControlID="dataList" />
|
||||||
</UpdatedControls>
|
</UpdatedControls>
|
||||||
</telerik:AjaxSetting>
|
</telerik:AjaxSetting>
|
||||||
</AjaxSettings>
|
</AjaxSettings>
|
||||||
|
|
|
||||||
|
|
@ -196,6 +196,12 @@ namespace VRS.Management.VSAT
|
||||||
var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString();
|
var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var txt = e.Item.FindControl("option_name") as RadTextBox;
|
||||||
|
if (null != txt)
|
||||||
|
{
|
||||||
|
txt.Text = detail.score.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
var imgRight1 = e.Item.FindControl("imgRight1") as Image;//正确答案1
|
var imgRight1 = e.Item.FindControl("imgRight1") as Image;//正确答案1
|
||||||
var imgRight2 = e.Item.FindControl("imgRight2") as Image;//正确答案2
|
var imgRight2 = e.Item.FindControl("imgRight2") as Image;//正确答案2
|
||||||
var imgRight3 = e.Item.FindControl("imgRight3") as Image;//正确答案3
|
var imgRight3 = e.Item.FindControl("imgRight3") as Image;//正确答案3
|
||||||
|
|
@ -206,7 +212,7 @@ namespace VRS.Management.VSAT
|
||||||
|
|
||||||
var query_right = string.Format(" theory_base_id ='{0}' and out_id='{1}' ", theory_base_id, "answer");
|
var query_right = string.Format(" theory_base_id ='{0}' and out_id='{1}' ", theory_base_id, "answer");
|
||||||
var list_right = bll_file.GetModelList(query_right).OrderBy(s => s.create_time).ToList();
|
var list_right = bll_file.GetModelList(query_right).OrderBy(s => s.create_time).ToList();
|
||||||
|
|
||||||
for (int i = 0; i < list_right.Count; i++)
|
for (int i = 0; i < list_right.Count; i++)
|
||||||
{
|
{
|
||||||
var obj = list_right[i];
|
var obj = list_right[i];
|
||||||
|
|
@ -218,7 +224,7 @@ namespace VRS.Management.VSAT
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -238,7 +244,7 @@ namespace VRS.Management.VSAT
|
||||||
|
|
||||||
var query_user = string.Format(" theory_base_id ='{0}' and out_id='{1}' ", theory_base_id, result_id);
|
var query_user = string.Format(" theory_base_id ='{0}' and out_id='{1}' ", theory_base_id, result_id);
|
||||||
var user_list = bll_file.GetModelList(query_user).OrderBy(s => s.create_time).ToList();
|
var user_list = bll_file.GetModelList(query_user).OrderBy(s => s.create_time).ToList();
|
||||||
|
|
||||||
for (int i = 0; i < user_list.Count; i++)
|
for (int i = 0; i < user_list.Count; i++)
|
||||||
{
|
{
|
||||||
var obj = user_list[i];
|
var obj = user_list[i];
|
||||||
|
|
@ -270,5 +276,39 @@ namespace VRS.Management.VSAT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnSaveOneJianda_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var btn = sender as Button;
|
||||||
|
var cell = btn.Parent as GridTableCell;
|
||||||
|
var item = cell.Parent as GridDataItem;
|
||||||
|
RadTextBox txt = item.FindControl("option_name") as RadTextBox;
|
||||||
|
var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString();
|
||||||
|
var result_id = item.GetDataKeyValue("result_id").ToString();
|
||||||
|
var id = item.GetDataKeyValue("id").ToString();
|
||||||
|
var detail = bll_batch_result_detail.GetModel(id);
|
||||||
|
|
||||||
|
var result = bll_batch_result.GetModel(result_id);
|
||||||
|
if (string.IsNullOrWhiteSpace(txt.Text))
|
||||||
|
{
|
||||||
|
RadAjaxManager1.ResponseScripts.Add("alert('分值不能为空!');");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
decimal crtScore = decimal.Parse(txt.Text);
|
||||||
|
if (crtScore > detail.total)
|
||||||
|
{
|
||||||
|
RadAjaxManager1.ResponseScripts.Add(string.Format("alert('分值不能大于{0}!');",detail.total));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
decimal addScore = crtScore - detail.score;
|
||||||
|
|
||||||
|
result.score = result.score + addScore;
|
||||||
|
if (bll_batch_result.Update(result))
|
||||||
|
{
|
||||||
|
detail.score = crtScore;
|
||||||
|
bll_batch_result_detail.Update(detail);
|
||||||
|
DataLoad();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,8 +43,6 @@
|
||||||
oWnd.center();
|
oWnd.center();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function OpenWindowDetail(Id) {
|
function OpenWindowDetail(Id) {
|
||||||
var oWnd = radopen("Examination_Edit.aspx?Id=" + Id, "RadWindowManager1");
|
var oWnd = radopen("Examination_Edit.aspx?Id=" + Id, "RadWindowManager1");
|
||||||
oWnd.setSize(980, 430);
|
oWnd.setSize(980, 430);
|
||||||
|
|
@ -105,12 +103,56 @@
|
||||||
|
|
||||||
function refreshGrid(args, msg) {
|
function refreshGrid(args, msg) {
|
||||||
if (!args) {
|
if (!args) {
|
||||||
|
|
||||||
$("#btnSelect").click();
|
$("#btnSelect").click();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function allowOnlyNumbers(sender, eventArgs) {
|
||||||
|
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
|
||||||
|
//console.log(keyCode);
|
||||||
|
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
|
||||||
|
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
|
||||||
|
eventArgs.set_cancel(true); // 取消非数字按键输入
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculateSum() {
|
||||||
|
var listBox = $find("RadListBoxDestination"); // 获取RadListBox客户端对象
|
||||||
|
if (!listBox) {
|
||||||
|
console.error("RadListBox not found.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var items = listBox.get_items(); // 获取所有项
|
||||||
|
var total = 0;
|
||||||
|
var count = 0;
|
||||||
|
for (var i = 0; i < items.get_count(); i++) {
|
||||||
|
var item = items.getItem(i);
|
||||||
|
// 在项中查找RadTextBox控件
|
||||||
|
var textBox = item.findControl("option_name"); // 传入服务器端设置的ID
|
||||||
|
if (textBox) {
|
||||||
|
var value = textBox.get_value(); // 获取RadTextBox的值
|
||||||
|
// 如果get_value()不适用,可以尝试get_text(),具体取决于RadTextBox的设置
|
||||||
|
// var value = textBox.get_text();
|
||||||
|
var num = parseFloat(value);
|
||||||
|
if (!isNaN(num)) {
|
||||||
|
total += num;
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById("span_name").innerHTML = "总题目:" + count + " 总分值:" + total;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function triggerServerSidePostback(sender, args) {
|
||||||
|
// 假设你通过某种方式获取到了那个用于回发的隐藏按钮的客户端ID
|
||||||
|
console.log(sender);
|
||||||
|
var btn = document.getElementById('<%= btnCheck.ClientID %>');
|
||||||
|
if (btn) {
|
||||||
|
btn.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<body>
|
<body>
|
||||||
<form id="form1" runat="server">
|
<form id="form1" runat="server">
|
||||||
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
|
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
|
||||||
|
|
@ -129,6 +171,7 @@
|
||||||
<asp:HiddenField ID="hid_examid" runat="server" />
|
<asp:HiddenField ID="hid_examid" runat="server" />
|
||||||
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
|
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
|
||||||
<asp:Button ID="btnSelect" runat="server" Text="查询" CssClass="btn btn-primary " OnClick="btnSelect_Click" />
|
<asp:Button ID="btnSelect" runat="server" Text="查询" CssClass="btn btn-primary " OnClick="btnSelect_Click" />
|
||||||
|
<asp:Button ID="btnCheck" runat="server" Text="" OnClick="btnCheck_Click" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<table class="table-form">
|
<table class="table-form">
|
||||||
|
|
@ -272,6 +315,7 @@
|
||||||
SelectionMode="Multiple" EnableDragAndDrop="true" AllowDelete="false" OnDeleted="RadListBoxDestination_Deleted"
|
SelectionMode="Multiple" EnableDragAndDrop="true" AllowDelete="false" OnDeleted="RadListBoxDestination_Deleted"
|
||||||
OnItemDataBound="RadListBoxDestination_ItemDataBound"
|
OnItemDataBound="RadListBoxDestination_ItemDataBound"
|
||||||
AutoPostBackOnDelete="true" ButtonSettings-VerticalAlign="Top" ButtonSettings-HorizontalAlign="Center">
|
AutoPostBackOnDelete="true" ButtonSettings-VerticalAlign="Top" ButtonSettings-HorizontalAlign="Center">
|
||||||
|
|
||||||
<HeaderTemplate>
|
<HeaderTemplate>
|
||||||
|
|
||||||
<%-- <input class="btn btn-default btn btn-xs" type="button" value="批量删除" />--%>
|
<%-- <input class="btn btn-default btn btn-xs" type="button" value="批量删除" />--%>
|
||||||
|
|
@ -279,12 +323,16 @@
|
||||||
<table style="width: 100%; user-select: none;" class="table-form">
|
<table style="width: 100%; user-select: none;" class="table-form">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 565px;">
|
<td style="width: 565px;">
|
||||||
<telerik:RadButton ID="btnBatchDeleteItem" OnClick="btnBatchDeleteItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="批量删除" ></telerik:RadButton>
|
<telerik:RadButton ID="btnBatchSelect" OnClick="btnBatchSelectAll_Click" Visible="true" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="全选" ></telerik:RadButton>
|
||||||
|
|
||||||
|
<telerik:RadButton ID="btnBatchDeleteItem" OnClick="btnBatchDeleteItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="批量移除" ></telerik:RadButton>
|
||||||
|
|
||||||
<asp:Label runat="server" id="lb_score_header" Visible="false"></asp:Label>
|
<asp:Label runat="server" id="lb_score_header" Visible="false"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="">
|
<td class="">
|
||||||
|
<telerik:RadButton ID="btnBatchComputeItem" Visible="false" OnClick="btnBatchComputeItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="计算分数" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton>
|
||||||
|
|
||||||
<telerik:RadButton ID="btnBatchSaveItem" OnClick="btnBatchSaveItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="保存所有" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton>
|
<telerik:RadButton ID="btnBatchSaveItem" OnClick="btnBatchSaveItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="保存所有" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -311,9 +359,17 @@
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span style="font-size: small">
|
<span style="font-size: small">
|
||||||
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray"
|
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray"
|
||||||
AutoPostBack="true" Width="80" Text='<%# DataBinder.Eval(Container, "Text")%>' OnTextChanged="option_name_TextChanged" AutoCompleteType="None"></telerik:RadTextBox>
|
AutoPostBack="false" Width="60" Text='<%# DataBinder.Eval(Container, "Text")%>' OnTextChanged="option_name_TextChanged" AutoCompleteType="Disabled">
|
||||||
|
<ClientEvents OnKeyPress="allowOnlyNumbers" />
|
||||||
|
<ClientEvents OnValueChanged="calculateSum" />
|
||||||
|
</telerik:RadTextBox>
|
||||||
</span> 分
|
</span> 分
|
||||||
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator_option_name" runat="server" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red" ControlToValidate="option_name" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
|
||||||
|
<asp:RegularExpressionValidator ID="RegexValidator_option_name" runat="server" ControlToValidate="option_name" ValidationExpression="^(0|[1-9]\d*)(\.\d{1,3})?$" ErrorMessage="请输入最多3位小数!" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"></asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
<td style="width: 60px;">
|
||||||
|
<telerik:RadButton ID="btnDeleteOne" OnClick="btnDeleteOne_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="移除" ></telerik:RadButton>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
@ -332,15 +388,9 @@
|
||||||
<Localization Close="关闭" OK="确定" Cancel="取消" Yes="确定" No="取消" />
|
<Localization Close="关闭" OK="确定" Cancel="取消" Yes="确定" No="取消" />
|
||||||
</telerik:RadWindowManager>
|
</telerik:RadWindowManager>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdatePanelsRenderMode="Inline"
|
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdatePanelsRenderMode="Inline"
|
||||||
OnAjaxRequest="AjaxManager_AjaxRequest">
|
OnAjaxRequest="AjaxManager_AjaxRequest">
|
||||||
<AjaxSettings>
|
<AjaxSettings>
|
||||||
|
|
||||||
|
|
||||||
<telerik:AjaxSetting AjaxControlID="btnSelect">
|
<telerik:AjaxSetting AjaxControlID="btnSelect">
|
||||||
<UpdatedControls>
|
<UpdatedControls>
|
||||||
<telerik:AjaxUpdatedControl ControlID="dataList" />
|
<telerik:AjaxUpdatedControl ControlID="dataList" />
|
||||||
|
|
@ -364,18 +414,25 @@
|
||||||
<telerik:AjaxSetting AjaxControlID="option_name">
|
<telerik:AjaxSetting AjaxControlID="option_name">
|
||||||
<UpdatedControls>
|
<UpdatedControls>
|
||||||
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
|
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
|
||||||
|
<telerik:AjaxUpdatedControl ControlID="lb_score_header" />
|
||||||
|
<telerik:AjaxUpdatedControl ControlID="span_name" />
|
||||||
</UpdatedControls>
|
</UpdatedControls>
|
||||||
</telerik:AjaxSetting>
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
|
<telerik:AjaxSetting AjaxControlID="btnDeleteOne">
|
||||||
<UpdatedControls>
|
<UpdatedControls>
|
||||||
<telerik:AjaxUpdatedControl ControlID="grdList" />
|
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
|
||||||
</UpdatedControls>
|
</UpdatedControls>
|
||||||
</telerik:AjaxSetting>
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
|
<telerik:AjaxSetting AjaxControlID="btnCheck">
|
||||||
|
<UpdatedControls>
|
||||||
|
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
|
||||||
|
</UpdatedControls>
|
||||||
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
</AjaxSettings>
|
</AjaxSettings>
|
||||||
</telerik:RadAjaxManager>
|
</telerik:RadAjaxManager>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Configuration;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -146,7 +147,7 @@ namespace VRS.Management.VSAT
|
||||||
addItem.Attributes.Add("question_kind", question_kind);
|
addItem.Attributes.Add("question_kind", question_kind);
|
||||||
|
|
||||||
var per_score = row["per_score"].ToString();
|
var per_score = row["per_score"].ToString();
|
||||||
addItem.Text = per_score;
|
addItem.Text = BasePage.RemoveTrailingZeros(per_score);
|
||||||
addItem.ToolTip = question;
|
addItem.ToolTip = question;
|
||||||
|
|
||||||
RadListBoxDestination.Items.Add(addItem);
|
RadListBoxDestination.Items.Add(addItem);
|
||||||
|
|
@ -213,7 +214,18 @@ namespace VRS.Management.VSAT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnBatchDel_Click(object sender, EventArgs e)
|
protected void btnCheck_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var list_insert = new List<DataService.Model.pro_exam_theory>();
|
||||||
|
var valid = checkInsertItems(out string msg, list_insert);
|
||||||
|
if (!valid)
|
||||||
|
{
|
||||||
|
//RadAjaxManager1.Alert(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnBatchDel_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var count = dataList.SelectedItems.Count;
|
var count = dataList.SelectedItems.Count;
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
|
|
@ -285,10 +297,11 @@ namespace VRS.Management.VSAT
|
||||||
if (null != rad_item)
|
if (null != rad_item)
|
||||||
{
|
{
|
||||||
var score = txtBox.Text.Trim();
|
var score = txtBox.Text.Trim();
|
||||||
decimal per_score = 0;
|
decimal per_score = -1; //decimal per_score = 0;
|
||||||
if (decimal.TryParse(score, out per_score))
|
if (decimal.TryParse(score, out per_score))
|
||||||
{
|
{
|
||||||
if (per_score > 0)
|
//if (per_score > 0) //$$$
|
||||||
|
if (per_score >= 0)
|
||||||
{
|
{
|
||||||
rad_item.Text = txtBox.Text.Trim();
|
rad_item.Text = txtBox.Text.Trim();
|
||||||
|
|
||||||
|
|
@ -310,11 +323,34 @@ namespace VRS.Management.VSAT
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 批量删除题目
|
/// 删除单个题目
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
protected void btnBatchDeleteItem_Click(object sender, EventArgs e)
|
protected void btnDeleteOne_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var btn = sender as RadButton;
|
||||||
|
var rad_item = btn.Parent as RadListBoxItem;
|
||||||
|
if (null != rad_item)
|
||||||
|
{
|
||||||
|
RadListBoxDestination.Items.Remove(rad_item);
|
||||||
|
RadListBoxDestination.DataBind();
|
||||||
|
|
||||||
|
var dsc = Get_RadList_Score();
|
||||||
|
Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label;
|
||||||
|
lb.Text = dsc;
|
||||||
|
span_name.InnerHtml = dsc;
|
||||||
|
|
||||||
|
SaveAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量删除题目
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void btnBatchDeleteItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var remove = false;
|
var remove = false;
|
||||||
for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--)
|
for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--)
|
||||||
|
|
@ -338,6 +374,32 @@ namespace VRS.Management.VSAT
|
||||||
Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label;
|
Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label;
|
||||||
lb.Text = dsc;
|
lb.Text = dsc;
|
||||||
span_name.InnerHtml = dsc;
|
span_name.InnerHtml = dsc;
|
||||||
|
|
||||||
|
SaveAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量选择题目
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void btnBatchSelectAll_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var remove = false;
|
||||||
|
for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var item = RadListBoxDestination.Items[i];
|
||||||
|
var chk = item.FindControl("chk_item") as CheckBox;
|
||||||
|
if (null != chk)
|
||||||
|
{
|
||||||
|
//if (chk.Checked)
|
||||||
|
//{
|
||||||
|
// RadListBoxDestination.Items.Remove(item);
|
||||||
|
// remove = true;
|
||||||
|
//}
|
||||||
|
chk.Checked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -356,9 +418,14 @@ namespace VRS.Management.VSAT
|
||||||
|
|
||||||
if (updateUI)
|
if (updateUI)
|
||||||
{
|
{
|
||||||
|
var jd=ConfigurationManager.AppSettings["jd"];
|
||||||
|
|
||||||
if (lb_question_kind.Text == "简答题")
|
if (lb_question_kind.Text == "简答题")
|
||||||
{
|
{
|
||||||
box.Enabled = false;
|
if (jd != "1")
|
||||||
|
{
|
||||||
|
box.Enabled = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -441,9 +508,9 @@ namespace VRS.Management.VSAT
|
||||||
{
|
{
|
||||||
if (lb_question_kind.Text != "简答题")
|
if (lb_question_kind.Text != "简答题")
|
||||||
{
|
{
|
||||||
if (per_score <= 0)
|
if (per_score < 0)
|
||||||
{
|
{
|
||||||
msg = dsc + ", 分值应大于0";
|
msg = dsc + ", 分值应不小于0";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -496,20 +563,22 @@ namespace VRS.Management.VSAT
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
public void SaveAll( bool tip = false)
|
||||||
/// 批量保存题目---保存所有
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
protected void btnBatchSaveItem_Click(object sender, EventArgs e)
|
|
||||||
{
|
{
|
||||||
|
#region 校验分值
|
||||||
|
|
||||||
var list_insert = new List<DataService.Model.pro_exam_theory>();
|
var list_insert = new List<DataService.Model.pro_exam_theory>();
|
||||||
var valid = checkInsertItems(out string msg, list_insert);
|
var valid = checkInsertItems(out string msg, list_insert);
|
||||||
if (!valid)
|
|
||||||
{
|
#region 100分值提示 $$$$
|
||||||
RadAjaxManager1.Alert(msg);
|
//if (!valid)
|
||||||
return;
|
//{
|
||||||
}
|
// RadAjaxManager1.Alert(msg);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
//设置no
|
//设置no
|
||||||
var list1 = list_insert.Where(s => s.question_difficult == "0").ToList();
|
var list1 = list_insert.Where(s => s.question_difficult == "0").ToList();
|
||||||
|
|
@ -518,7 +587,7 @@ namespace VRS.Management.VSAT
|
||||||
|
|
||||||
var list4 = list_insert.Where(s => s.question_difficult == "3").ToList();
|
var list4 = list_insert.Where(s => s.question_difficult == "3").ToList();
|
||||||
var list5 = list_insert.Where(s => s.question_difficult == "4").ToList();
|
var list5 = list_insert.Where(s => s.question_difficult == "4").ToList();
|
||||||
for (int i=0;i <list1.Count;i++)
|
for (int i = 0; i < list1.Count; i++)
|
||||||
{
|
{
|
||||||
list1[i].no = (i + 1);
|
list1[i].no = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
@ -547,11 +616,41 @@ namespace VRS.Management.VSAT
|
||||||
if (success_count > 0)
|
if (success_count > 0)
|
||||||
{
|
{
|
||||||
//RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');CloseAndRebind();");
|
//RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');CloseAndRebind();");
|
||||||
RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');");
|
if (tip)
|
||||||
|
{
|
||||||
|
RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');");
|
||||||
|
}
|
||||||
DataLoad();
|
DataLoad();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量保存题目---保存所有
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void btnBatchSaveItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SaveAll(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 计算分值
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void btnBatchComputeItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var list_insert = new List<DataService.Model.pro_exam_theory>();
|
||||||
|
var valid = checkInsertItems(out string msg, list_insert);
|
||||||
|
//if (!valid)
|
||||||
|
//{
|
||||||
|
// RadAjaxManager1.Alert(msg);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
protected void RadListBoxDestination_ItemDataBound(object sender, RadListBoxItemEventArgs e)
|
protected void RadListBoxDestination_ItemDataBound(object sender, RadListBoxItemEventArgs e)
|
||||||
{
|
{
|
||||||
var DataItem = e.Item.DataItem;
|
var DataItem = e.Item.DataItem;
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,15 @@ namespace VRS.Management.VSAT
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Button btnSelect;
|
protected global::System.Web.UI.WebControls.Button btnSelect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCheck 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnCheck;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txt_exam_name 控件。
|
/// txt_exam_name 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@
|
||||||
</telerik:RadScriptManager>
|
</telerik:RadScriptManager>
|
||||||
<div class="hidden">
|
<div class="hidden">
|
||||||
<asp:HiddenField ID="IdInput" runat="server" />
|
<asp:HiddenField ID="IdInput" runat="server" />
|
||||||
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
|
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<table class="table-form">
|
<table class="table-form">
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@
|
||||||
GetRadWindow().Close();
|
GetRadWindow().Close();
|
||||||
GetRadWindow().BrowserWindow.refreshGrid(args);
|
GetRadWindow().BrowserWindow.refreshGrid(args);
|
||||||
}
|
}
|
||||||
|
function Rebind(args) {
|
||||||
|
GetRadWindow().BrowserWindow.refreshGrid(args);
|
||||||
|
}
|
||||||
function GetRadWindow() {
|
function GetRadWindow() {
|
||||||
var oWindow = null;
|
var oWindow = null;
|
||||||
if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
|
if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
|
||||||
|
|
@ -55,11 +58,65 @@
|
||||||
CloseRadWindow();
|
CloseRadWindow();
|
||||||
}
|
}
|
||||||
//]]>
|
//]]>
|
||||||
|
|
||||||
|
function allowOnlyNumbers(sender, eventArgs) {
|
||||||
|
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
|
||||||
|
//console.log(keyCode);
|
||||||
|
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
|
||||||
|
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
|
||||||
|
eventArgs.set_cancel(true); // 取消非数字按键输入
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculateSum() {
|
||||||
|
var grid = $find("<%= dataList.ClientID %>"); // 获取RadGrid客户端对象
|
||||||
|
if (!grid) {
|
||||||
|
console.log("RadGrid not found.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//console.log(grid);
|
||||||
|
var masterTable = grid.get_masterTableView(); // 获取主表视图
|
||||||
|
var dataItems = masterTable.get_dataItems(); // 获取所有数据行
|
||||||
|
var totalSum = 0;
|
||||||
|
// 遍历每一行
|
||||||
|
for (var i = 0; i < dataItems.length; i++) {
|
||||||
|
var currentRow = dataItems[i];
|
||||||
|
var dataKeyValue = currentRow.getDataKeyValue("theory_count");
|
||||||
|
var numericCount = parseFloat(dataKeyValue);
|
||||||
|
|
||||||
|
// 方法1:通过控件ID查找 (适用于Telerik控件)
|
||||||
|
var targetTextBox = currentRow.findControl("option_name"); // 替换为你的TextBox唯一ID YourTextBoxUniqueName
|
||||||
|
if (targetTextBox) {
|
||||||
|
var currentValue = targetTextBox.get_value(); // 获取Telerik文本框的值
|
||||||
|
console.log("currentValue:" + currentValue + ",numericCount:" + numericCount);
|
||||||
|
// 如果 get_value() 不适用,可以尝试 .get_text() 或直接 .value
|
||||||
|
// var currentValue = targetTextBox.get_text();
|
||||||
|
// var currentValue = targetTextBox.value;
|
||||||
|
// 将值转换为数字并累加
|
||||||
|
var numericValue = parseFloat(currentValue) || 0;
|
||||||
|
totalSum += numericValue * numericCount;
|
||||||
|
}
|
||||||
|
// 方法2:如果TextBox是标准HTML输入框,可通过DOM查找 (需知客户端ID结构)
|
||||||
|
// var textBoxElement = currentRow.findElement("YourTextBoxClientID");
|
||||||
|
// if (textBoxElement) {
|
||||||
|
// var currentValue = textBoxElement.value;
|
||||||
|
// var numericValue = parseFloat(currentValue) || 0;
|
||||||
|
// totalSum += numericValue;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
// 显示或使用计算结果
|
||||||
|
console.log("Total Sum: " + totalSum);
|
||||||
|
document.getElementById("span_name").innerHTML = "总分:"+totalSum;
|
||||||
|
// alert("所有行的文本框值总和为: " + totalSum);
|
||||||
|
// 你也可以将结果显示在页面的某个标签或文本框中
|
||||||
|
// document.getElementById("resultLabel").innerText = totalSum;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<br />
|
<br />
|
||||||
<form id="form1" runat="server">
|
<form id="form1" runat="server">
|
||||||
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
|
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true">
|
||||||
<Scripts>
|
<Scripts>
|
||||||
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"></asp:ScriptReference>
|
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"></asp:ScriptReference>
|
||||||
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"></asp:ScriptReference>
|
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"></asp:ScriptReference>
|
||||||
|
|
@ -84,7 +141,9 @@
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="">
|
<tr class="">
|
||||||
<th class="caption" colspan="2">设置分数:<span id="span_name" style="color: red" runat="server"></span> </th>
|
<th class="caption" colspan="2">设置分数:<span id="span_name" style="color: red" runat="server"></span>
|
||||||
|
<input type="button" class="hidden" onclick="calculateSum();" value="计算总和" />
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="">
|
<tr class="">
|
||||||
|
|
@ -97,7 +156,7 @@
|
||||||
<Selecting AllowRowSelect="true" />
|
<Selecting AllowRowSelect="true" />
|
||||||
<Resizing AllowColumnResize="true" />
|
<Resizing AllowColumnResize="true" />
|
||||||
</ClientSettings>
|
</ClientSettings>
|
||||||
<MasterTableView DataKeyNames="no,theory_type,theory_count" ClientDataKeyNames="no">
|
<MasterTableView DataKeyNames="no,theory_type,theory_count" ClientDataKeyNames="no,theory_count">
|
||||||
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
|
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
|
||||||
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
|
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
|
||||||
<HeaderStyle Width="20px"></HeaderStyle>
|
<HeaderStyle Width="20px"></HeaderStyle>
|
||||||
|
|
@ -114,9 +173,15 @@
|
||||||
<telerik:GridBoundColumn DataField="theory_count" HeaderText="数量" ItemStyle-Width="120"> </telerik:GridBoundColumn>
|
<telerik:GridBoundColumn DataField="theory_count" HeaderText="数量" ItemStyle-Width="120"> </telerik:GridBoundColumn>
|
||||||
<telerik:GridTemplateColumn HeaderText="分值">
|
<telerik:GridTemplateColumn HeaderText="分值">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<telerik:RadTextBox runat="server" Skin="Bootstrap" Width="80" Visible="false" ID="option_name" OnTextChanged="option_name_TextChanged"></telerik:RadTextBox>
|
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray" OnTextChanged="per_score_TextChanged"
|
||||||
<telerik:RadNumericTextBox ID="per_score" runat="server" AutoPostBack="true" Skin="Bootstrap" Width="90px" OnTextChanged="per_score_TextChanged" NumberFormat-DecimalDigits="3" Value="0"></telerik:RadNumericTextBox>
|
AutoPostBack="false" Width="60" Text='0' AutoCompleteType="Disabled">
|
||||||
|
<ClientEvents OnKeyPress="allowOnlyNumbers" />
|
||||||
|
<ClientEvents OnValueChanged="calculateSum"/>
|
||||||
|
</telerik:RadTextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator_option_name" runat="server" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red" ControlToValidate="option_name" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
|
||||||
|
<asp:RegularExpressionValidator ID="RegexValidator_option_name" runat="server" ControlToValidate="option_name" ValidationExpression="^(0|[1-9]\d*)(\.\d{1,3})?$" ErrorMessage="请输入最多3位小数!" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"></asp:RegularExpressionValidator>
|
||||||
|
|
||||||
|
<telerik:RadNumericTextBox ID="per_score" runat="server" Visible="false" AutoPostBack="false" OnTextChanged="per_score_TextChanged" Skin="Bootstrap" Width="90px" NumberFormat-DecimalDigits="3" MinValue="0" Value="1" AutoCompleteType="Disabled"></telerik:RadNumericTextBox>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</telerik:GridTemplateColumn>
|
</telerik:GridTemplateColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
|
|
@ -142,8 +207,8 @@
|
||||||
|
|
||||||
<tr class="">
|
<tr class="">
|
||||||
<td class="base-bottom" colspan="2">
|
<td class="base-bottom" colspan="2">
|
||||||
<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" />
|
<input class="mybtn btn btn-success" type="button" value="保存" onclick="$('#btnSure').click()" />
|
||||||
<input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" />
|
<input class="mybtn btn btn-danger" type="button" value="关闭" onclick="CloseRadWindow()" />
|
||||||
<div class="hidden">
|
<div class="hidden">
|
||||||
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="70px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>
|
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="70px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>
|
||||||
<telerik:RadButton ID="btnCancel" runat="server" Skin="Bootstrap" Width="70px" Text="取消" AutoPostBack="False" OnClientClicked="CloseRadWindow" Style="position: relative;"></telerik:RadButton>
|
<telerik:RadButton ID="btnCancel" runat="server" Skin="Bootstrap" Width="70px" Text="取消" AutoPostBack="False" OnClientClicked="CloseRadWindow" Style="position: relative;"></telerik:RadButton>
|
||||||
|
|
@ -179,6 +244,14 @@
|
||||||
</UpdatedControls>
|
</UpdatedControls>
|
||||||
</telerik:AjaxSetting>
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
|
<telerik:AjaxSetting AjaxControlID="option_name">
|
||||||
|
<UpdatedControls>
|
||||||
|
<telerik:AjaxUpdatedControl ControlID="dataList" />
|
||||||
|
<telerik:AjaxUpdatedControl ControlID="span_name" />
|
||||||
|
|
||||||
|
</UpdatedControls>
|
||||||
|
</telerik:AjaxSetting>
|
||||||
|
|
||||||
<telerik:AjaxSetting AjaxControlID="btnSure">
|
<telerik:AjaxSetting AjaxControlID="btnSure">
|
||||||
<UpdatedControls>
|
<UpdatedControls>
|
||||||
<telerik:AjaxUpdatedControl ControlID="btnSure" UpdatePanelCssClass="" />
|
<telerik:AjaxUpdatedControl ControlID="btnSure" UpdatePanelCssClass="" />
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Configuration;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using System.Web.Services;
|
||||||
using System.Web.UI;
|
using System.Web.UI;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
using Telerik.Web.UI;
|
using Telerik.Web.UI;
|
||||||
|
|
@ -87,7 +89,12 @@ namespace VRS.Management.VSAT
|
||||||
span_name.InnerHtml = msg;
|
span_name.InnerHtml = msg;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var exam_id = hid_examId.Value;
|
var exam_id = hid_examId.Value;
|
||||||
|
|
||||||
|
#region 校验试卷分值 $$$$
|
||||||
|
/*
|
||||||
var exam = bll_examination.GetModel(exam_id);
|
var exam = bll_examination.GetModel(exam_id);
|
||||||
var exam_total = double.Parse(exam.total_score);
|
var exam_total = double.Parse(exam.total_score);
|
||||||
if (totalscore != exam_total)
|
if (totalscore != exam_total)
|
||||||
|
|
@ -96,6 +103,10 @@ namespace VRS.Management.VSAT
|
||||||
RadAjaxManager1.Alert(msg);
|
RadAjaxManager1.Alert(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
//以下为具体实现方式
|
//以下为具体实现方式
|
||||||
/*
|
/*
|
||||||
if (totalscore!=100)
|
if (totalscore!=100)
|
||||||
|
|
@ -108,7 +119,7 @@ namespace VRS.Management.VSAT
|
||||||
var success_count = bll_exam_theory.BatchScore_Update(list_type_count, exam_id);
|
var success_count = bll_exam_theory.BatchScore_Update(list_type_count, exam_id);
|
||||||
if (success_count > 0)
|
if (success_count > 0)
|
||||||
{
|
{
|
||||||
RadAjaxManager1.ResponseScripts.Add("alert('设置成功!');CloseAndRebind();");
|
RadAjaxManager1.ResponseScripts.Add("alert('设置成功!');Rebind();");//alert('设置成功!');CloseAndRebind()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -121,26 +132,41 @@ namespace VRS.Management.VSAT
|
||||||
for (int i = 0; i < dataList.Items.Count; i++)
|
for (int i = 0; i < dataList.Items.Count; i++)
|
||||||
{
|
{
|
||||||
var item = dataList.Items[i];
|
var item = dataList.Items[i];
|
||||||
var txt = item.FindControl("per_score") as RadNumericTextBox;
|
//var txt = item.FindControl("per_score") as RadNumericTextBox;
|
||||||
|
var txt = item.FindControl("option_name") as RadTextBox;
|
||||||
|
|
||||||
var no = int.Parse(item.GetDataKeyValue("no").ToString());
|
var no = int.Parse(item.GetDataKeyValue("no").ToString());
|
||||||
var theory_type = item.GetDataKeyValue("theory_type").ToString();
|
var theory_type = item.GetDataKeyValue("theory_type").ToString();
|
||||||
var theory_count = int.Parse(item.GetDataKeyValue("theory_count").ToString());
|
var theory_count = int.Parse(item.GetDataKeyValue("theory_count").ToString());
|
||||||
|
|
||||||
|
var jd = ConfigurationManager.AppSettings["jd"];
|
||||||
if (theory_type == "简答题")
|
if (theory_type == "简答题")
|
||||||
{
|
{
|
||||||
continue;
|
if (jd != "1")
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (!txt.Value.HasValue)
|
if (!txt.Value.HasValue)
|
||||||
{
|
{
|
||||||
msg = theory_type + ",分值不能为空!";
|
msg = theory_type + ",分值不能为空!";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var per_score = txt.Value.Value;
|
var per_score = txt.Value.Value;
|
||||||
if (per_score <= 0)
|
*/
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(txt.Text))
|
||||||
{
|
{
|
||||||
msg = theory_type + ",分值应大于0!";
|
msg = theory_type + ",分值不能为空!";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var per_score = double.Parse(txt.Text);
|
||||||
|
|
||||||
|
if (per_score < 0) //if (per_score <= 0) $$$
|
||||||
|
{
|
||||||
|
msg = theory_type + ",分值不小于0!"; // 分值应大于0! $$$
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -181,11 +207,19 @@ namespace VRS.Management.VSAT
|
||||||
if (e.Item is GridDataItem)
|
if (e.Item is GridDataItem)
|
||||||
{
|
{
|
||||||
GridDataItem item = e.Item as GridDataItem;
|
GridDataItem item = e.Item as GridDataItem;
|
||||||
RadNumericTextBox per_score = e.Item.FindControl("per_score") as RadNumericTextBox;
|
//RadNumericTextBox per_score = e.Item.FindControl("per_score") as RadNumericTextBox; //$$$
|
||||||
|
RadTextBox per_score = e.Item.FindControl("option_name") as RadTextBox;
|
||||||
|
|
||||||
|
per_score.Attributes["data-clientid"] = per_score.ClientID;
|
||||||
|
|
||||||
string theory_type =item.GetDataKeyValue("theory_type").ToString();
|
string theory_type =item.GetDataKeyValue("theory_type").ToString();
|
||||||
|
var jd = ConfigurationManager.AppSettings["jd"];
|
||||||
if (theory_type == "简答题")
|
if (theory_type == "简答题")
|
||||||
{
|
{
|
||||||
per_score.Visible = false;
|
if (jd != "1")
|
||||||
|
{
|
||||||
|
per_score.Visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -193,5 +227,7 @@ namespace VRS.Management.VSAT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -57,6 +57,15 @@
|
||||||
//Add JavaScript handler code here
|
//Add JavaScript handler code here
|
||||||
CloseRadWindow();
|
CloseRadWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function btn_edit(obj) {
|
||||||
|
obj.disabled = true;
|
||||||
|
$('#btnSure').click();
|
||||||
|
window.setTimeout(function () {
|
||||||
|
obj.disabled = false;
|
||||||
|
console.log("单机按钮恢复");
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -213,7 +222,8 @@
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="base-bottom" colspan="4">
|
<td class="base-bottom" colspan="4">
|
||||||
<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" />
|
<%--<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" />--%>
|
||||||
|
<input class="mybtn btn btn-success" type="button" value="确定" onclick="btn_edit(this)" />
|
||||||
<input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" />
|
<input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" />
|
||||||
<div class="hidden">
|
<div class="hidden">
|
||||||
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="120px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>
|
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="120px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@
|
||||||
<th class="caption" colspan="2">中英文切换配置:</th>
|
<th class="caption" colspan="2">中英文切换配置:</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="table-td-name"><span class="span_danger">*</span>是否启用中英文切换:</td>
|
<td class="table-td-name"><span class="span_danger">*</span>是否启用中英文切换:单端登录最长时长(分钟):</td>
|
||||||
<td class="table-td-content">
|
<td class="table-td-content">
|
||||||
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="radio_label" >
|
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="radio_label" >
|
||||||
<asp:ListItem Value="1"> 是 </asp:ListItem>
|
<asp:ListItem Value="1"> 是 </asp:ListItem>
|
||||||
|
|
@ -148,9 +148,9 @@
|
||||||
<asp:ListItem Value="0"> 同一用户单端登陆 </asp:ListItem>
|
<asp:ListItem Value="0"> 同一用户单端登陆 </asp:ListItem>
|
||||||
|
|
||||||
</asp:RadioButtonList>
|
</asp:RadioButtonList>
|
||||||
单端登录最长时长(分钟):<telerik:RadNumericTextBox runat="server" ID="user_stay_minutes" Skin="Bootstrap" MinValue="0" NumberFormat-DecimalDigits="0" Width="85"></telerik:RadNumericTextBox>
|
最长无操作时间(分钟)<telerik:RadNumericTextBox runat="server" ID="user_stay_minutes" Visible="true" Skin="Bootstrap" MinValue="0" NumberFormat-DecimalDigits="0" Width="85"></telerik:RadNumericTextBox>
|
||||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator_user_stay_minutes" runat="server" Display="Static" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator_user_stay_minutes" runat="server" Display="Static" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"
|
||||||
ControlToValidate="user_stay_minutes" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
|
ControlToValidate="user_stay_minutes" Visible="true" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1087,7 +1087,23 @@ namespace VRS
|
||||||
return "hidden";
|
return "hidden";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string RemoveTrailingZeros(string numberString)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(numberString))
|
||||||
|
return numberString;
|
||||||
|
|
||||||
|
// 如果包含小数点,去除末尾的零和小数点
|
||||||
|
if (numberString.Contains('.'))
|
||||||
|
{
|
||||||
|
numberString = numberString.TrimEnd('0');
|
||||||
|
if (numberString.EndsWith("."))
|
||||||
|
numberString = numberString.TrimEnd('.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return numberString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 写日志
|
/// 写日志
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,13 @@
|
||||||
$("#btnSelect").click();
|
$("#btnSelect").click();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function OnDataDelete(Id) {
|
||||||
|
if (confirm("确定删除数据吗?")) {
|
||||||
|
$("#IdInput").val(Id);
|
||||||
|
$("#btnDelete").click();
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<body>
|
<body>
|
||||||
<form id="form1" runat="server">
|
<form id="form1" runat="server">
|
||||||
|
|
@ -38,7 +45,8 @@
|
||||||
</telerik:RadScriptManager>
|
</telerik:RadScriptManager>
|
||||||
<div class="hidden">
|
<div class="hidden">
|
||||||
<asp:HiddenField ID="IdInput" runat="server" />
|
<asp:HiddenField ID="IdInput" runat="server" />
|
||||||
|
|
||||||
|
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<table class="table-form">
|
<table class="table-form">
|
||||||
|
|
@ -148,6 +156,12 @@
|
||||||
</telerik:GridBoundColumn>
|
</telerik:GridBoundColumn>
|
||||||
<telerik:GridBoundColumn DataField="create_time" HeaderText="时间" HeaderStyle-Width="150" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}">
|
<telerik:GridBoundColumn DataField="create_time" HeaderText="时间" HeaderStyle-Width="150" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}">
|
||||||
</telerik:GridBoundColumn>
|
</telerik:GridBoundColumn>
|
||||||
|
<%-- <telerik:GridTemplateColumn HeaderText="操作">
|
||||||
|
<ItemTemplate>
|
||||||
|
|
||||||
|
<a onclick="OnDataDelete('<%#Eval("log_id") %>')" class="btn btn-danger btn-xs "><span class="mdi mdi-close"></span></a>
|
||||||
|
</ItemTemplate>
|
||||||
|
</telerik:GridTemplateColumn>--%>
|
||||||
</Columns>
|
</Columns>
|
||||||
<EditFormSettings>
|
<EditFormSettings>
|
||||||
<EditColumn FilterControlAltText="Filter EditCommandColumn column">
|
<EditColumn FilterControlAltText="Filter EditCommandColumn column">
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,28 @@ namespace VRS.Util
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnDelete_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var model = bll.GetModel(IdInput.Value);
|
||||||
|
//直接删除
|
||||||
|
if (bll.Delete(IdInput.Value))
|
||||||
|
{
|
||||||
|
#region 删除登录日志
|
||||||
|
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
|
||||||
|
var userModel = bll_user.GetModel(model.user_id);
|
||||||
|
if (null != userModel)
|
||||||
|
{
|
||||||
|
userModel.id_card = "";
|
||||||
|
userModel.login_time = null;
|
||||||
|
bll_user.Update(userModel);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
MyDataBind(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected override void DataLoad()
|
protected override void DataLoad()
|
||||||
{
|
{
|
||||||
if (!start.SelectedDate.HasValue)
|
if (!start.SelectedDate.HasValue)
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,15 @@ namespace VRS.Util
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.HiddenField IdInput;
|
protected global::System.Web.UI.WebControls.HiddenField IdInput;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDelete 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnDelete;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// content 控件。
|
/// content 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,10 @@
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="asd1234_20231116180445.png" />
|
||||||
|
<Content Include="asd1234_20231116180459.png" />
|
||||||
|
<Content Include="asd1234_20231116180500.png" />
|
||||||
|
<Content Include="asd1234_20231116181135.png" />
|
||||||
<Content Include="Assets\Images\autoLogo.jpg" />
|
<Content Include="Assets\Images\autoLogo.jpg" />
|
||||||
<Content Include="Assets\Images\bottom.jpg" />
|
<Content Include="Assets\Images\bottom.jpg" />
|
||||||
<Content Include="Assets\Images\healthLogo.png" />
|
<Content Include="Assets\Images\healthLogo.png" />
|
||||||
|
|
@ -465,6 +469,7 @@
|
||||||
<Content Include="Assets\layui\js\bootstrap-datetimepicker\moment.min.js" />
|
<Content Include="Assets\layui\js\bootstrap-datetimepicker\moment.min.js" />
|
||||||
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.js" />
|
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.js" />
|
||||||
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.min.css" />
|
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.min.css" />
|
||||||
|
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabsEx.js" />
|
||||||
<Content Include="Assets\layui\js\bootstrap-notify.min.js" />
|
<Content Include="Assets\layui\js\bootstrap-notify.min.js" />
|
||||||
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table-zh-CN.min.js" />
|
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table-zh-CN.min.js" />
|
||||||
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table.js" />
|
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table.js" />
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@
|
||||||
<add key="AES_KEY" value="12345678900000001234567890000000" />
|
<add key="AES_KEY" value="12345678900000001234567890000000" />
|
||||||
<!--AES_IV-->
|
<!--AES_IV-->
|
||||||
<add key="AES_IV" value="1234567890000000" />
|
<add key="AES_IV" value="1234567890000000" />
|
||||||
|
|
||||||
|
<!--jd-->
|
||||||
|
<!--<add key="jd" value="" />-->
|
||||||
|
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
|
|
|
||||||
|
|
@ -34,4 +34,10 @@ tcp://192.168.254.110:1883,th_project/th_wg1,/ali/thtenant/thtenarproject/downst
|
||||||
|
|
||||||
炭黑生产制造接口增加设备连线图片上传,三维一道协助调试云端设备及测点名称接口
|
炭黑生产制造接口增加设备连线图片上传,三维一道协助调试云端设备及测点名称接口
|
||||||
|
|
||||||
|
RadTextBox 校验
|
||||||
|
|
||||||
|
Repair
|
||||||
|
Repair_Add
|
||||||
|
Repair_Edit
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue