projectissuetypes.ascx.cs
来自「BugNET is an issue tracking and project 」· CS 代码 · 共 260 行
CS
260 行
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using BugNET.UserInterfaceLayer;
using BugNET.BusinessLogicLayer;
using BugNET.UserControls;
namespace BugNET.Administration.Projects.UserControls
{
public partial class ProjectIssueTypes : 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.grdIssueTypes.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DeleteIssueType);
this.grdIssueTypes.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grdIssueTypes_ItemDataBound);
}
#endregion
private int _ProjectId = -1;
public int ProjectId
{
get { return _ProjectId; }
set { _ProjectId = value; }
}
public bool Update()
{
if (Page.IsValid)
return true;
else
return false;
}
/// <summary>
/// Inits this instance.
/// </summary>
public void Initialize()
{
BindIssueType();
lstImages.Initialize();
}
/// <summary>
/// Binds the status.
/// </summary>
void BindIssueType()
{
grdIssueTypes.DataSource = IssueType.GetIssueTypesByProjectId(ProjectId);
grdIssueTypes.DataKeyField = "Id";
grdIssueTypes.DataBind();
if (grdIssueTypes.Items.Count == 0)
grdIssueTypes.Visible = false;
else
grdIssueTypes.Visible = true;
}
/// <summary>
/// Handles the ItemCommand event of the grdIssueTypes 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 grdIssueTypes_ItemCommand(object sender, DataGridCommandEventArgs e)
{
IssueType s;
int itemIndex = e.Item.ItemIndex;
switch (e.CommandName)
{
case "up":
//move row up
if (itemIndex == 0)
return;
s = IssueType.GetIssueTypeById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex]));
s.SortOrder -= 1;
s.Save();
break;
case "down":
//move row down
if (itemIndex == grdIssueTypes.Items.Count - 1)
return;
s = IssueType.GetIssueTypeById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex]));
s.SortOrder += 1;
s.Save();
break;
}
BindIssueType();
}
/// <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 AddIssueType(Object s, EventArgs e)
{
string newName = txtName.Text.Trim();
if (newName == String.Empty)
return;
IssueType newIssueType = new IssueType(ProjectId, newName, lstImages.SelectedValue);
if (newIssueType.Save())
{
txtName.Text = "";
BindIssueType();
lstImages.SelectedValue = String.Empty;
}
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 DeleteIssueType(Object s, DataGridCommandEventArgs e)
{
int statusId = (int)grdIssueTypes.DataKeys[e.Item.ItemIndex];
if (!IssueType.DeleteIssueType(statusId))
lblError.Text = "Could not delete status";
else
BindIssueType();
}
/// <summary>
/// Handles the Edit event of the grdIssueTypes 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 grdIssueTypes_Edit(object sender, DataGridCommandEventArgs e)
{
grdIssueTypes.EditItemIndex = e.Item.ItemIndex;
grdIssueTypes.DataBind();
}
/// <summary>
/// Handles the Update event of the grdIssueTypes 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 grdIssueTypes_Update(object sender, DataGridCommandEventArgs e)
{
IssueType s = IssueType.GetIssueTypeById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex]));
TextBox txtIssueTypeName = (TextBox)e.Item.FindControl("txtIssueTypeName");
PickImage pickimg = (PickImage)e.Item.FindControl("lstEditImages");
s.Name = txtIssueTypeName.Text.Trim();
s.ImageUrl = pickimg.SelectedValue;
s.Save();
grdIssueTypes.EditItemIndex = -1;
BindIssueType();
}
/// <summary>
/// Handles the Cancel event of the grdIssueTypes 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 grdIssueTypes_Cancel(object sender, DataGridCommandEventArgs e)
{
grdIssueTypes.EditItemIndex = -1;
grdIssueTypes.DataBind();
}
/// <summary>
/// Handles the ItemDataBound event of the grdIssueTypes 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 grdIssueTypes_ItemDataBound(Object s, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
IssueType currentIssueType = (IssueType)e.Item.DataItem;
Label lblIssueTypeName = (Label)e.Item.FindControl("lblIssueTypeName");
lblIssueTypeName.Text = currentIssueType.Name;
Image imgIssueType = (Image)e.Item.FindControl("imgIssueType");
if (currentIssueType.ImageUrl == String.Empty)
{
imgIssueType.Visible = false;
}
else
{
imgIssueType.ImageUrl = "~/Images/IssueType/" + currentIssueType.ImageUrl;
imgIssueType.AlternateText = currentIssueType.Name;
}
Button btnDelete = (Button)e.Item.FindControl("btnDelete");
btnDelete.Attributes.Add("onclick", String.Format("return confirm('Are you sure you want to delete the \"{0}\" issue type?');", currentIssueType.Name));
}
if (e.Item.ItemType == ListItemType.EditItem)
{
IssueType currentIssueType = (IssueType)e.Item.DataItem;
TextBox txtIssueTypeName = (TextBox)e.Item.FindControl("txtIssueTypeName");
PickImage pickimg = (PickImage)e.Item.FindControl("lstEditImages");
txtIssueTypeName.Text = currentIssueType.Name;
pickimg.Initialize();
pickimg.SelectedValue = currentIssueType.ImageUrl;
}
}
/// <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 ValidateIssueType(Object s, ServerValidateEventArgs e)
{
if (grdIssueTypes.Items.Count > 0)
e.IsValid = true;
else
e.IsValid = false;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?