?? projectstatus.ascx.cs
字號:
namespace BugNET.Administration.Projects.UserControls
{
using System;
using System.Data;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using BugNET.BusinessLogicLayer;
using BugNET.UserInterfaceLayer;
using BugNET.UserControls;
/// <summary>
/// Summary description for Status.
/// </summary>
public partial class ProjectStatus : System.Web.UI.UserControl, IEditProjectControl
{
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
Trace.Warn("Initializing");
this.grdStatus.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DeleteStatus);
this.grdStatus.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grdStatus_ItemDataBound);
}
#endregion
//*********************************************************************
//
// Status.ascx
//
// This user control is used by both the new project wizard and update
// project page.
//
//*********************************************************************
private int _ProjectId = -1;
/// <summary>
/// Gets or sets the project id.
/// </summary>
/// <value>The project id.</value>
public int ProjectId
{
get { return _ProjectId; }
set { _ProjectId = value; }
}
/// <summary>
/// Updates this instance.
/// </summary>
/// <returns></returns>
public bool Update()
{
if (Page.IsValid)
return true;
else
return false;
}
/// <summary>
/// Inits this instance.
/// </summary>
public void Initialize()
{
BindStatus();
lstImages.Initialize();
}
/// <summary>
/// Binds the status.
/// </summary>
void BindStatus()
{
grdStatus.DataSource = Status.GetStatusByProjectId(ProjectId);
grdStatus.DataKeyField="Id";
grdStatus.DataBind();
if (grdStatus.Items.Count == 0)
grdStatus.Visible = false;
else
grdStatus.Visible = true;
}
/// <summary>
/// Handles the ItemCommand event of the grdStatus control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param>
protected void grdStatus_ItemCommand(object sender, DataGridCommandEventArgs e)
{
Status s;
int itemIndex = e.Item.ItemIndex;
switch (e.CommandName)
{
case "up":
//move row up
if (itemIndex == 0)
return;
s = Status.GetStatusById(Convert.ToInt32(grdStatus.DataKeys[e.Item.ItemIndex]));
s.SortOrder -= 1;
s.Save();
break;
case "down":
//move row down
if (itemIndex == grdStatus.Items.Count - 1)
return;
s = Status.GetStatusById(Convert.ToInt32(grdStatus.DataKeys[e.Item.ItemIndex]));
s.SortOrder += 1;
s.Save();
break;
}
BindStatus();
}
/// <summary>
/// Adds the status.
/// </summary>
/// <param name="s">The s.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void AddStatus(Object s, EventArgs e)
{
string newName = txtName.Text.Trim();
if (newName == String.Empty)
return;
Status newStatus = new Status(ProjectId, newName, lstImages.SelectedValue,chkClosedState.Checked);
if (newStatus.Save())
{
txtName.Text = "";
BindStatus();
lstImages.SelectedValue = String.Empty;
chkClosedState.Checked = false;
}
else
{
lblError.Text = "Could not save status";
}
}
/// <summary>
/// Deletes the status.
/// </summary>
/// <param name="s">The s.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param>
void DeleteStatus(Object s, DataGridCommandEventArgs e)
{
int statusId = (int)grdStatus.DataKeys[e.Item.ItemIndex];
if (!Status.DeleteStatus(statusId))
lblError.Text = "Could not delete status";
else
BindStatus();
}
/// <summary>
/// Handles the Edit event of the grdStatus control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param>
protected void grdStatus_Edit(object sender, DataGridCommandEventArgs e)
{
grdStatus.EditItemIndex = e.Item.ItemIndex;
grdStatus.DataBind();
}
/// <summary>
/// Handles the Update event of the grdStatus control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param>
protected void grdStatus_Update(object sender, DataGridCommandEventArgs e)
{
Status s = Status.GetStatusById(Convert.ToInt32(grdStatus.DataKeys[e.Item.ItemIndex]));
TextBox txtStatusName = (TextBox)e.Item.FindControl("txtStatusName");
PickImage pickimg = (PickImage)e.Item.FindControl("lstEditImages");
s.Name = txtStatusName.Text.Trim();
s.ImageUrl = pickimg.SelectedValue;
s.Save();
grdStatus.EditItemIndex = -1;
BindStatus();
}
/// <summary>
/// Handles the Cancel event of the grdStatus control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param>
protected void grdStatus_Cancel(object sender, DataGridCommandEventArgs e)
{
grdStatus.EditItemIndex = -1;
grdStatus.DataBind();
}
/// <summary>
/// Handles the ItemDataBound event of the grdStatus control.
/// </summary>
/// <param name="s">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridItemEventArgs"/> instance containing the event data.</param>
void grdStatus_ItemDataBound(Object s, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Status currentStatus = (Status)e.Item.DataItem;
Label lblStatusName = (Label)e.Item.FindControl("lblStatusName");
lblStatusName.Text = currentStatus.Name;
Image imgStatus = (Image)e.Item.FindControl("imgStatus");
if (currentStatus.ImageUrl == String.Empty)
{
imgStatus.Visible = false;
}
else
{
imgStatus.ImageUrl = "~/Images/Status/" + currentStatus.ImageUrl;
imgStatus.AlternateText = currentStatus.Name;
}
CheckBox ClosedState = (CheckBox)e.Item.FindControl("chkClosedState");
ClosedState.Checked = currentStatus.IsClosedState;
Button btnDelete = (Button)e.Item.FindControl("btnDelete");
btnDelete.Attributes.Add("onclick",String.Format("return confirm('Are you sure you want to delete the \"{0}\" status?');", currentStatus.Name));
}
if (e.Item.ItemType == ListItemType.EditItem)
{
Status currentStatus = (Status)e.Item.DataItem;
TextBox txtStatusName = (TextBox)e.Item.FindControl("txtStatusName");
PickImage pickimg = (PickImage)e.Item.FindControl("lstEditImages");
CheckBox ClosedState = (CheckBox)e.Item.FindControl("chkEditClosedState");
txtStatusName.Text = currentStatus.Name;
pickimg.Initialize();
pickimg.SelectedValue = currentStatus.ImageUrl;
ClosedState.Checked = currentStatus.IsClosedState;
}
}
/// <summary>
/// Validates the status.
/// </summary>
/// <param name="s">The s.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.ServerValidateEventArgs"/> instance containing the event data.</param>
protected void ValidateStatus(Object s, ServerValidateEventArgs e)
{
if (grdStatus.Items.Count > 0)
e.IsValid = true;
else
e.IsValid = false;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -