protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { M_Design_Question questMod = new M_Design_Question(); if (Mid > 0) { questMod = questBll.SelReturnModel(Mid); AskID = questMod.AskID; } else { AskID = DataConvert.CLng(Request.QueryString["AskID"]); } //------------------------------------------------------- if (AskID < 1) { function.WriteErrMsg("未指定问卷ID"); } M_Design_Ask askMod = askBll.SelReturnModel(AskID); AskTitle_T.Text = askMod.Title; Ask_Hid.Value = JsonConvert.SerializeObject(askMod); Question_Hid.Value = JsonConvert.SerializeObject(questMod); } }
public int Insert(M_Design_Question model) { if (model.OrderID == 0) { model.OrderID = DataConvert.CLng(DBCenter.ExecuteScala(TbName, "MAX(OrderID)", "AskID=" + model.AskID)) + 1; } return(DBCenter.Insert(model)); }
protected void Save_Btn_Click(object sender, EventArgs e) { M_Design_Question questMod = JsonConvert.DeserializeObject <M_Design_Question>(Question_Hid.Value); if (questMod.ID < 1) { questBll.Insert(questMod); } else { questBll.UpdateByID(questMod); } function.WriteSuccessMsg("操作成功", "QuestionList.aspx?AskID=" + questMod.AskID); }
public void ProcessRequest(HttpContext context) { M_UserInfo mu = buser.GetLogin(); retMod.retcode = M_APIResult.Failed; try { switch (Action) { case "list": { int askid = Convert.ToInt32(Req("askid")); DataTable dt = questBll.Sel(askid, "qlist"); retMod.retcode = M_APIResult.Success; retMod.result = JsonConvert.SerializeObject(dt); } break; case "get": { int id = Convert.ToInt32(Req("id")); M_Design_Question questMod = questBll.U_SelModel(mu.UserID, id); retMod.retcode = M_APIResult.Success; retMod.result = JsonConvert.SerializeObject(questMod); } break; case "add": { M_Design_Question model = JsonConvert.DeserializeObject <M_Design_Question>(Req("model")); if (model.ID > 0) { //哪些选项不允许修改 M_Design_Question questMod = questBll.U_SelModel(mu.UserID, model.ID); model.CUser = questMod.CUser; model.CDate = questMod.CDate; model.AskID = questMod.AskID; questBll.UpdateByID(model); } else { model.CUser = mu.UserID; model.ID = questBll.Insert(model); } retMod.retcode = M_APIResult.Success; retMod.result = model.ID.ToString(); } break; case "del": { int id = Convert.ToInt32(Req("id")); questBll.U_Del(mu.UserID, id); retMod.retcode = M_APIResult.Success; retMod.result = "success"; } break; case "move": { int from = Convert.ToInt32(Req("from")); int target = Convert.ToInt32(Req("target")); retMod.result = questBll.Move(from, target).ToString(); retMod.retcode = M_APIResult.Success; } break; default: retMod.retmsg = "[" + Action + "]接口不存在"; break; } } catch (Exception ex) { retMod.retmsg = ex.Message; } RepToClient(retMod); }
public bool UpdateByID(M_Design_Question model) { return(DBCenter.UpdateByID(model, model.ID)); }
protected void RPT_ItemDataBound(object sender, RepeaterItemEventArgs e) { if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) { //text:count DataRowView drv = e.Item.DataItem as DataRowView; int qid = Convert.ToInt32(drv["ID"]); M_Design_Question questMod = questBll.SelReturnModel(qid); switch (drv["QType"].ToString()) { case "radio": { Repeater rpt = e.Item.FindControl("Radio_RPT") as Repeater; DataTable optionDT = JsonConvert.DeserializeObject <DataTable>(questMod.QOption); //四舍五入导至不匹配 optionDT.Columns.Add(new DataColumn("count", typeof(int))); optionDT.Columns.Add(new DataColumn("percent", typeof(double))); DataTable ansDT = GetAnsDT(qid); int total = ansDT.Rows.Count < 1 ? 0 : Convert.ToInt32(ansDT.Compute("SUM(count)", "")); for (int i = 0; i < optionDT.Rows.Count; i++) { DataRow opdr = optionDT.Rows[i]; foreach (DataRow ansdr in ansDT.Rows) { string answer = ansdr["answer"].ToString(); int count = Convert.ToInt32(ansdr["count"]); if (opdr["value"].ToString().Equals(answer)) { opdr["count"] = DataConvert.CLng(opdr) + count; } } } for (int i = 0; i < optionDT.Rows.Count; i++) { double count = DataConvert.CDouble(optionDT.Rows[i]["count"]); optionDT.Rows[i]["count"] = count; //未选择的为0 optionDT.Rows[i]["percent"] = count / total; } rpt.DataSource = optionDT; rpt.DataBind(); SaveChartHid(e, optionDT); } break; case "checkbox": { Repeater rpt = e.Item.FindControl("Checkbox_RPT") as Repeater; DataTable optionDT = JsonConvert.DeserializeObject <DataTable>(questMod.QOption); optionDT.Columns.Add(new DataColumn("count", typeof(int))); optionDT.Columns.Add(new DataColumn("percent", typeof(double))); //多选项一个回答,会有多个结果,所以需要再处理一次 DataTable ansDT = GetAnsDT(qid); int total = ansDT.Rows.Count < 1 ? 0 : Convert.ToInt32(ansDT.Compute("SUM(count)", "")); for (int i = 0; i < optionDT.Rows.Count; i++) { DataRow opdr = optionDT.Rows[i]; foreach (DataRow ansdr in ansDT.Rows) { string[] ansArr = ansdr["answer"].ToString().Split(','); int count = Convert.ToInt32(ansdr["count"]); foreach (string ans in ansArr) { if (opdr["value"].ToString().Equals(ans)) { opdr["count"] = DataConvert.CLng(opdr) + count; } } } } for (int i = 0; i < optionDT.Rows.Count; i++) { double count = DataConvert.CDouble(optionDT.Rows[i]["count"]); optionDT.Rows[i]["count"] = count; optionDT.Rows[i]["percent"] = count / total; } rpt.DataSource = optionDT; rpt.DataBind(); SaveChartHid(e, optionDT); } break; case "blank": //前台直接判断出链接即可 break; case "score": { JObject jobj = JsonConvert.DeserializeObject <JObject>(questMod.QFlag); string score = "0"; TextBox text = e.Item.FindControl("Score_T") as TextBox; text.Attributes.Add("data-stars", DataConvert.CLng(jobj["maxscore"]).ToString()); DataTable dt = DBCenter.SelWithField(TbName, "AVG(CAST(Answer as int))", "Answer IN('1','2','3','4','5','6','7','8','9','10') AND Qid=" + qid); if (dt.Rows.Count > 0) { score = DataConvert.CDouble(dt.Rows[0][0]).ToString("f1"); } text.Text = score; } break; case "sort": //未实现 { } break; default: break; } } }