ZhiYeJianKang_PeiXun/Song.Site/Manage/Course/OutlineEvent_Edit.aspx.cs

289 lines
10 KiB
C#
Raw Normal View History

2025-02-20 15:41:53 +08:00
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WeiSha.Common;
using Song.ServiceInterfaces;
using Song.Entities;
using System.Xml.Serialization;
using System.IO;
namespace Song.Site.Manage.Course
{
public partial class OutlineEvent_Edit : Extend.CustomPage
{
//<2F>½<EFBFBD><C2BD>¼<EFBFBD>ID
private int id = WeiSha.Common.Request.QueryString["id"].Int32 ?? 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>γ̵<CEB3>ID
private int couid = WeiSha.Common.Request.QueryString["couid"].Int32 ?? 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>½ڵ<C2BD>ID
private int olid = WeiSha.Common.Request.QueryString["olid"].Int32 ?? 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>½ڵ<C2BD>UID
private string uid = WeiSha.Common.Request.QueryString["uid"].String;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
fill();
}
this.Form.DefaultButton = this.btnEnter.UniqueID;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
/// </summary>
private void InitBind(int type)
{
type = type <= 1 ? 1 : type;
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>
ContentPlaceHolder cpl1 = (ContentPlaceHolder)Master.FindControl("cphMain");
for (int i = 1; i <= 4; i++)
{
//System.Web.UI.WebControls.contr
System.Web.UI.WebControls.Panel p = (System.Web.UI.WebControls.Panel)cpl1.FindControl("Panel" + i);
if (p == null) continue;
p.Visible = i == type;
}
}
protected void tblTypes_SelectedIndexChanged(object sender, EventArgs e)
{
int type;
int.TryParse(rblTypes.SelectedValue, out type);
InitBind(type);
}
private void fill()
{
Song.Entities.OutlineEvent obj = id < 1 ? new Song.Entities.OutlineEvent() : Business.Do<IOutline>().EventSingle(id);
if (id < 1)
{
InitBind(1);
setEventQues(id);
setEventFeedback(id);
}
if (id > 0 && obj != null)
{
InitBind(obj.Oe_EventType);
rblTypes.Enabled = false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
tbTitle.Text = obj.Oe_Title;
cbIsUse.Checked = obj.Oe_IsUse;
tbWidth.Text = obj.Oe_Width.ToString();
tbHeight.Text = obj.Oe_Height.ToString();
tbPoint.Text = obj.Oe_TriggerPoint.ToString();
ListItem liType = rblTypes.Items.FindByValue(obj.Oe_EventType.ToString());
if (liType != null)
{
rblTypes.SelectedIndex = -1;
liType.Selected = true;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ѡ<EFBFBD>
if (obj.Oe_EventType == 1)
{
tbContext1.Text = obj.Oe_Context;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD>֪ʶչʾ<D5B9><CABE>
if (obj.Oe_EventType == 2)
{
tbContext2.Text = obj.Oe_Context;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>ʡ<EFBFBD>
if (obj.Oe_EventType == 3)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tbQuesTit.Text = obj.Oe_Context;
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
setEventQues(id);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//tbAnswer.Text = obj.Oe_Answer;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (obj.Oe_EventType == 4)
{
tbQuesTit4.Text = obj.Oe_Context;
setEventFeedback(id);
}
}
protected void btnEnter_Click(object sender, EventArgs e)
{
Song.Entities.OutlineEvent obj = id < 1 ? new Song.Entities.OutlineEvent() : Business.Do<IOutline>().EventSingle(id);
if (obj == null) return;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
obj.Cou_ID = couid;
obj.Ol_ID = olid;
obj.Ol_UID = uid;
obj.Oe_Title = tbTitle.Text.Trim();
obj.Oe_IsUse = cbIsUse.Checked;
int width, height, point, type;
int.TryParse(tbWidth.Text, out width);
int.TryParse(tbHeight.Text, out height);
int.TryParse(tbPoint.Text, out point);
int.TryParse(rblTypes.SelectedValue, out type);
obj.Oe_Width = width;
obj.Oe_Height = height;
obj.Oe_TriggerPoint = point;
obj.Oe_EventType = type;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ѡ<EFBFBD>
if (obj.Oe_EventType == 1)
{
if (tbContext1.Text.Trim().Length > 300)
tbContext1.Text = tbContext1.Text.Substring(0, 300);
obj.Oe_Context = tbContext1.Text.Trim();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD>֪ʶչʾ<D5B9><CABE>
if (obj.Oe_EventType == 2)
{
obj.Oe_Context = tbContext2.Text;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>ʡ<EFBFBD>
if (obj.Oe_EventType == 3)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
obj.Oe_Context = tbQuesTit.Text.Trim();
DataTable dt = getEventQues();
XmlSerializer xmlSerial = new XmlSerializer(typeof(DataTable));
StringWriter sw = new StringWriter();
xmlSerial.Serialize(sw, dt); // <20><><EFBFBD>л<EFBFBD>table
obj.Oe_Datatable = sw.ToString();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//obj.Oe_Answer = tbAnswer.Text.Trim();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (obj.Oe_EventType == 4)
{
obj.Oe_Context = tbQuesTit4.Text.Trim();
DataTable dt = getEventFeedback();
XmlSerializer xmlSerial = new XmlSerializer(typeof(DataTable));
StringWriter sw = new StringWriter();
xmlSerial.Serialize(sw, dt); // <20><><EFBFBD>л<EFBFBD>table
obj.Oe_Datatable = sw.ToString();
}
try
{
if (id < 1)
{
//<2F><><EFBFBD><EFBFBD>
Business.Do<IOutline>().EventAdd(obj);
}
else
{
Business.Do<IOutline>().EventSave(obj);
}
Master.AlertCloseAndRefresh("<22><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
catch
{
throw;
}
}
#region ˽<EFBFBD>з<EFBFBD><EFBFBD><EFBFBD>
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
private void setEventQues(int oeid)
{
DataTable dt = Business.Do<IOutline>().EventQues(oeid);
if (dt == null)
{
dt = new DataTable("EventQues");
dt.Columns.Add(new DataColumn("iscorrect", Type.GetType("System.Boolean")));
dt.Columns.Add(new DataColumn("item", Type.GetType("System.String")));
}
int rowcount = dt.Rows.Count;
int maxLine = 4;
for (int i = maxLine - rowcount; i > rowcount; i--)
{
DataRow dr = dt.NewRow();
dr["item"] = "";
dr["iscorrect"] = false;
dt.Rows.Add(dr);
}
gvAnswer.DataSource = dt;
gvAnswer.DataBind();
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
private void setEventFeedback(int oeid)
{
DataTable dt = Business.Do<IOutline>().EventFeedback(oeid);
if (dt == null)
{
dt = new DataTable("EventFeedback");
dt.Columns.Add(new DataColumn("item", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("point", Type.GetType("System.Int32")));
}
int rowcount = dt.Rows.Count;
int maxLine = 6;
for (int i = maxLine - rowcount; i > rowcount; i--)
{
DataRow dr = dt.NewRow();
dr["item"] = "";
dr["point"] = 0;
dt.Rows.Add(dr);
}
rptFeedback.DataSource = dt;
rptFeedback.DataBind();
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
private DataTable getEventQues()
{
DataTable dt = new DataTable("EventFeedback");
dt.Columns.Add(new DataColumn("iscorrect", Type.GetType("System.Boolean")));
dt.Columns.Add(new DataColumn("item", Type.GetType("System.String")));
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
for (int i = 0; i < gvAnswer.Rows.Count; i++)
{
//<2F><>ѡť
RadioButton rb = (RadioButton)gvAnswer.Rows[i].FindControl("rbAns");
//ѡ<><D1A1><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
TextBox tb = (TextBox)gvAnswer.Rows[i].FindControl("itemTxt");
DataRow dr = dt.NewRow();
dr["iscorrect"] = rb.Checked;
dr["item"] = tb.Text;
dt.Rows.Add(dr);
}
return dt;
}
/// <summary>
/// <20><>ȡʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
private DataTable getEventFeedback()
{
DataTable dt = new DataTable("EventFeedback");
dt.Columns.Add(new DataColumn("item", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("point", Type.GetType("System.Int32")));
foreach (Control c in rptFeedback.Controls)
{
string item = ((TextBox)c.FindControl("tbItem")).Text;
int point;
int.TryParse(((TextBox)c.FindControl("tbPoint")).Text,out point);
DataRow dr = dt.NewRow();
dr["item"] = item;
dr["point"] = point;
dt.Rows.Add(dr);
}
return dt;
}
#endregion
}
}