📄 questionadd.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/*----------------------------------------------------------------
// Copyright (C) 2008青岛惠信科技有限公司版权所有。
//
// 文件名:网上调查
// 功能描述:问题表、问题选项表维护
// 添加标识:sff20081029
//
----------------------------------------------------------------*/
namespace votemanage
{
/// <summary>
/// QuestionAdd 的摘要说明。
/// </summary>
public class QuestionAdd : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtName;
protected System.Web.UI.WebControls.TextBox txttypeid;
protected System.Web.UI.WebControls.TextBox txtRemark;
protected System.Web.UI.WebControls.RadioButtonList votetype;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.Button btnDel;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.RadioButtonList type;
protected System.Web.UI.WebControls.Button btnSave;
protected System.Web.UI.WebControls.CheckBox chkText;
protected System.Web.UI.WebControls.CheckBox chkDel;
private stander.DBComm db;
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
this.btnDel.Click += new System.EventHandler(this.btnDel_Click);
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Page_Load(object sender, System.EventArgs e)
{
//为删除按钮在客户端添加删除提示
//this.btnDel.Attributes.Add("onclick","{if(confirm('确认删除所选记录吗?')){return true;}return false;}");
// 在此处放置用户代码以初始化页面
db = new stander.DBComm();
if (!Page.IsPostBack)
{
DataTable dtGrid = new DataTable();
//问题ID
this.txttypeid.Text=Request.Params["typeid"];
//问题ID为空,则为新增页面
if(txttypeid.Text==null || txttypeid.Text.Length==0)
{
dtGrid.Columns.Add("Number");
dtGrid.Columns.Add("AnswerTitle");
DataRow newRow = dtGrid.NewRow();
newRow["Number"] = "1";
newRow["AnswerTitle"] = "";
dtGrid.Rows.Add(newRow);
DataGrid1.DataSource=dtGrid;
DataGrid1.DataBind();
}
else
{
//======读取问题ID的信息,初始化修改页面======
// 1。问题版块
string strQuestion = "select QuestionTitle, QuestionType, Remark from QuestionTable ";
strQuestion += "where QuestionID = " + this.txttypeid.Text;
DataTable dtQuestion = db.GetDataTable(strQuestion);
if (dtQuestion != null && dtQuestion.Rows.Count > 0)
{
//备注名称
this.txtName.Text = dtQuestion.Rows[0]["QuestionTitle"].ToString();
//类型
this.votetype.SelectedValue = dtQuestion.Rows[0]["QuestionType"].ToString();
//备注
this.txtRemark.Text = dtQuestion.Rows[0]["Remark"].ToString();
}
// 2。问题选项版块
string strAnswer = "select Number,AnswerTitle,AnswerType from AnswerChooseTable ";
strAnswer += "where QuestionID = " + this.txttypeid.Text;
dtGrid=db.GetDataTable(strAnswer);
//该调查没有相关选项
if (dtGrid.Rows.Count == 0)
{
DataRow newRow = dtGrid.NewRow();
newRow["Number"] = "1";
newRow["AnswerTitle"] = "";
newRow["AnswerType"] = "0";
dtGrid.Rows.Add(newRow);
DataGrid1.DataSource=dtGrid;
DataGrid1.DataBind();
}
else
{
//有选项则绑定
DataGrid1.DataSource=dtGrid;
DataGrid1.DataBind();
////////更新答案类型列
for (int i=0;i<dtGrid.Rows.Count;i++)
{
((RadioButtonList)DataGrid1.Items[i].Cells[2].FindControl("type")).SelectedValue = dtGrid.Rows[i]["AnswerType"].ToString();//答案类型
}
}
if (db != null)
{
db.Dispose();
}
}
}
}
/// <summary>
/// 添加行
/// </summary>
private void btnAdd_Click(object sender, System.EventArgs e)
{
DataTable dt = this.GetDataFromGrid("N");
DataRow newRow = dt.NewRow();
newRow["Number"] = (dt.Rows.Count + 1).ToString();
newRow["AnswerType"] = "0";///////答案类型列
newRow["AnswerTitle"] = "";
dt.Rows.Add(newRow);
//重新绑定数据源
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
////////更新答案类型列
for (int i=0;i<dt.Rows.Count;i++)
{
((RadioButtonList)DataGrid1.Items[i].Cells[2].FindControl("type")).SelectedValue = dt.Rows[i]["AnswerType"].ToString();//答案类型
}
}
/// <summary>
/// 删除选中行
/// </summary>
private void btnDel_Click(object sender, System.EventArgs e)
{
DataTable dt = this.GetDataFromGrid("Y");
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
}
/// <summary>
/// 从DataGrid中读取数据
/// </summary>
protected DataTable GetDataFromGrid(string delflag)
{
DataRow newRow;
DataTable dttemp = new DataTable();
dttemp.Columns.Add("Number");
dttemp.Columns.Add("AnswerType");///////答案类型列
dttemp.Columns.Add("AnswerTitle");
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
//添加行
if (delflag == "N" || ((CheckBox)DataGrid1.Items[i].Cells[0].FindControl("chkDel")).Checked == false)
{
newRow = dttemp.NewRow();
newRow["Number"] = (dttemp.Rows.Count + 1).ToString();
newRow["AnswerType"] = ((RadioButtonList)DataGrid1.Items[i].Cells[2].FindControl("type")).SelectedValue;///////答案类型列
newRow["AnswerTitle"] = ((TextBox)DataGrid1.Items[i].Cells[3].FindControl("txtTitle")).Text.Trim();
dttemp.Rows.Add(newRow);
}
}
dttemp.AcceptChanges();
return dttemp;
}
/// <summary>
/// 保存问题记录
/// </summary>
private void btnSave_Click(object sender, System.EventArgs e)
{
//保存数据
ArrayList arrSql = new ArrayList();
string strtypeid;//要修改的调查记录ID
string strsqlvote;
//获取数据信息
string question = this.txtName.Text.Trim().Replace("'","''");//问题描述
string remark = this.txtRemark.Text.Trim().Replace("'","''");//备注
string votetype = this.votetype.SelectedValue.ToString();//调查类型
//数据合法性校验
if (question == "")//调查名称
{
Page.RegisterStartupScript("", "<script>alert('请输入问题描述!')</script>");
return;
}
else if (question.Length > 100)
{
Page.RegisterStartupScript("", "<script>alert('问题描述不能多于100个字!')</script>");
return;
}
if (remark.Length > 200)//备注
{
Page.RegisterStartupScript("", "<script>alert('备注不能多于200个字!')</script>");
return;
}
//新增问题记录
if(this.txttypeid.Text==null || this.txttypeid.Text.Length==0)
{
//获取新增加记录的ID,方便向问题选项表添加记录
string sqlmaxid = "SELECT (ISNULL(MAX(QuestionID), 0) + 1) as id FROM QuestionTable";
DataTable dtmaxid = db.GetDataTable(sqlmaxid);
strtypeid = dtmaxid.Rows[0]["id"].ToString();
//将数据写入数据库
strsqlvote ="insert into QuestionTable(QuestionTitle, QuestionType, Remark) ";
strsqlvote += "values('" + question + "','" + votetype + "','" + remark + "') ";
}
else
{
//更新调查记录
strtypeid = this.txttypeid.Text.Trim();
strsqlvote = "update QuestionTable set ";
strsqlvote += "QuestionTitle = '" + this.txtName.Text.Trim() + "',";
strsqlvote += "QuestionType = '" + this.votetype.SelectedValue.ToString() + "',";
strsqlvote += "Remark = '" + this.txtRemark.Text.Trim() + "' ";
strsqlvote += "where QuestionID = " + this.txttypeid.Text.Trim();
string strdel = "delete VoteAnswerTable where AnswerID in (select AnswerID from ";
strdel += "AnswerChooseTable where QuestionID=" + this.txttypeid.Text + ")";
arrSql.Add(strdel);
arrSql.Add("delete AnswerChooseTable where QuestionID=" + this.txttypeid.Text);
}
arrSql.Add(strsqlvote);
//保存datagrid数据
int intnumber = 1;
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
if (((TextBox)DataGrid1.Items[i].Cells[3].FindControl("txtTitle")).Text.Trim() != "")
{
//读取答案类型
string type = ((RadioButtonList)DataGrid1.Items[i].Cells[2].FindControl("type")).SelectedValue;
//读取答案选项,并检验其合法性
string title = ((TextBox)DataGrid1.Items[i].Cells[3].FindControl("txtTitle")).Text.Trim();
if (title.Length > 100)
{
Page.RegisterStartupScript("", "<script>alert('答案描述不能多于100个字!')</script>");
return;
}
//将选项信息写入数据库
string str = "insert into AnswerChooseTable(QuestionID, AnswerTitle, AnswerType,Number) ";
str += "values('" + strtypeid + "','" + title + "','" + type + "','" + intnumber.ToString() + "')";
intnumber++;
arrSql.Add(str);
}
}
//保存数据到数据库
bool result = db.TransCommanArray(arrSql);
if (result == false)
{
Page.RegisterStartupScript("", "<script>alert('保存失败')</script>");
return;
}
else
{
Page.RegisterStartupScript("", "<script>alert('保存成功');location.replace('QuestionList.aspx');</script>");
}
if (db != null)
{
db.Dispose();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -