⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 questionadd.aspx.cs

📁 动态生成页面
💻 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 + -