?? managevote.aspx.cs
字號:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
namespace book08
{
/// <summary>
/// ManageVote 的摘要說明。
/// </summary>
public partial class ManageVote : System.Web.UI.Page
{
#region protected members
#endregion
#region Properties
/// <summary>
/// 當前選中投票的id
/// </summary>
public int SelectedVoteID
{
get
{
if (ViewState["SelectedVoteID"] == null)
return -1;
return Convert.ToInt32(ViewState["SelectedVoteID"]);
}
set
{
ViewState["SelectedVoteID"] = value;
}
}
/// <summary>
/// 當前編輯投票的id,利用ViewState存取當前編輯的投票ID
/// </summary>
public int EditVoteID
{
get
{
if (ViewState["EditVoteID"] == null)
return -1;
return Convert.ToInt32(ViewState["EditVoteID"]);
}
set
{
ViewState["EditVoteID"] = value;
}
}
/// <summary>
/// 當前編輯的選項id
/// </summary>
public int EditOptionID
{
get
{
if (ViewState["EditOptionID"] == null)
return -1;
return Convert.ToInt32(ViewState["EditOptionID"]);
}
set
{
ViewState["EditOptionID"] = value;
}
}
#endregion
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
//顯示投票列表
BindGrid();
//顯示當前選中投票的選項內容,若沒有選中則不顯示
panelOption.Visible = (SelectedVoteID != -1);
//隱藏增加新選項的panel
panelAddVote.Visible = false;
}
//為添加選項按鈕增加客戶端屬性onclick,防止提交空選項
string newOptionID = tbNewOption.UniqueID.ToString();
string strScript = string.Format(
"return (document.all('{0}').value != '');", newOptionID);
lbAddOption.Attributes.Add("onclick", strScript);
}
/// <summary>
/// 數據綁定
/// </summary>
private void BindGrid()
{
//獲取所有投票的信息并顯示
string strConn = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(strConn);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "GetAllVotes";
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
conn.Open();
da.Fill(ds);
dgVotes.DataSource = ds.Tables[0].DefaultView;
dgVotes.DataBind();
}
catch (SqlException ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}
/// <summary>
/// 數據綁定選項列表
/// </summary>
private void BindOptionGrid()
{
//獲取所有選項的信息并顯示
string strConn = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(strConn);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "GetOptions";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@vote_id", SelectedVoteID);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
conn.Open();
da.Fill(ds);
dgOptions.DataSource = ds.Tables[0].DefaultView;
dgOptions.DataBind();
}
catch (SqlException ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.dgVotes.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgVotes_ItemCreated);
this.dgVotes.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgVotes_ItemCommand);
this.dgVotes.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgVotes_CancelCommand);
this.dgVotes.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgVotes_EditCommand);
this.dgVotes.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgVotes_UpdateCommand);
this.dgVotes.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgVotes_DeleteCommand);
this.dgOptions.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgOptions_ItemCreated);
this.dgOptions.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgOptions_CancelCommand);
this.dgOptions.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgOptions_EditCommand);
this.dgOptions.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgOptions_UpdateCommand);
this.dgOptions.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgOptions_DeleteCommand);
}
#endregion
#region dgVotes
private void dgVotes_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//編輯項在dgVotes中的序號
int index = e.Item.ItemIndex;
//獲取當前編輯的投票ID
HtmlInputHidden hih = (HtmlInputHidden)dgVotes.Items[index].Cells[0].FindControl("vote_id");
EditVoteID = Convert.ToInt32(hih.Value);
//將當前行轉為編輯狀態
dgVotes.EditItemIndex = index;
BindGrid();
}
private void dgVotes_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//獲取編輯后的各字段值
DataGridItem item = dgVotes.Items[e.Item.ItemIndex];
string strQuestion = ((TextBox)item.FindControl("tbQuestion")).Text;
string strStartdate = ((TextBox)item.FindControl("tbStartdate")).Text;
string strEnddate = ((TextBox)item.FindControl("tbEnddate")).Text;
bool bMulti = ((CheckBox)item.FindControl("cbMultiEdit")).Checked;
bool bActive = ((CheckBox)item.FindControl("cbActiveEdit")).Checked;
//執行存儲過程更新投票信息,同時退出編輯狀態
string strConn = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(strConn);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "UpdateVote";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", EditVoteID);
cmd.Parameters.Add("@question", strQuestion);
cmd.Parameters.Add("@start_date", strStartdate);
cmd.Parameters.Add("@end_date", strEnddate);
cmd.Parameters.Add("@type", bMulti);
cmd.Parameters.Add("@active", bActive);
try
{
conn.Open();
cmd.ExecuteNonQuery();
dgVotes.EditItemIndex = -1;
BindGrid();
}
catch (SqlException ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}
private void dgVotes_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//退出編輯狀態,不做任何操作
dgVotes.EditItemIndex = -1;
BindGrid();
}
private void dgVotes_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//為刪除按鈕增加客戶端onclick屬性
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.EditItem ||
e.Item.ItemType == ListItemType.SelectedItem)
{
LinkButton lb = (LinkButton)(e.Item.Cells[7].Controls[0]);
lb.Attributes.Add("onclick", "return confirm('您確定要刪除該項投票嗎?');");;
}
}
private void dgVotes_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -