In this post, we will create UI for PersonalTaskTracker application.
Right-click on PersonalTaskTracker project and add a new class named Resource.cs and add the following code. Resource.aspx
Now, right-click on PersonalTaskTracker project and add a new Webform and name it Home.aspx
- Open Web.config file of the application.
- Add the following lines to the Web.config file.
Web.config
<connectionstrings> <add connectionstring="data source=YOUR_SERVER_NAME; uid=YOUR_USER_ID; Pwd=YOUR_PASSWORD; database=PTT" name="PersonalTaskTrackerConnectionString"> </add> </connectionstrings>
Right-click on PersonalTaskTracker project and add a new class named Resource.cs and add the following code. Resource.aspx
namespace PersonalTaskTracker
{
///
/// Resource class. It contains static strings, constants etc.
///
public static class Resource
{
///
/// Tag for Open status.
///
public const int OPENSTATUS = 1;
///
/// Tag for Done status.
///
public const int DONESTATUS = 2;
///
/// URL parameter value for delete operation.
///
public static string delete = "delete";
///
/// URL parameter value for edit operation.
///
public static string edit = "edit";
///
/// URL parameter value for add operation.
///
public static string add = "add";
///
/// URL parameter value for view operation.
///
public static string view = "view";
///
/// URL parameter for type of operation occurred like for example deleted or edit.
///
public static string operation = "op";
///
/// URL parameter for id of the task.
///
public static string idParameter = "id";
///
/// URL for Home page.
///
public static string HomeURL = "Home.aspx";
}
}
Now, right-click on PersonalTaskTracker project and add a new Webform and name it Home.aspx
Home.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="PersonalTaskTracker.Home" EnableEventValidation="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblAddEdit" runat="server" Font-Bold="True" Font-Size="Larger"
ForeColor="Blue"></asp:Label>
<br />
<br />
ID
<asp:Label ID="lblTaskId" runat="server"></asp:Label>
<asp:Button ID="btnAddNewTask" runat="server" Font-Bold="True"
ForeColor="#FF6600" onclick="btnAddNewTask_Click1" Text="Add NewTask"
Visible="False" />
<br />
<br />
<asp:Label ID="lblSummaryTxt" runat="server" Text="Summary"></asp:Label>
<asp:TextBox ID="txtSummary" runat="server" Width="221px"></asp:TextBox>
<br />
<br />
<asp:Label ID="lblDescriptionTxt" runat="server" Text="Description"></asp:Label>
<asp:TextBox ID="txtDescription" runat="server" Height="66px" TextMode="MultiLine" Width="228px"></asp:TextBox>
<br />
<br />
<asp:Label ID="lblStatusTxt" runat="server" Text="Status" Visible="False"></asp:Label>
<asp:CheckBox ID="cbxStatus" runat="server" Text="Closed" Visible="False" />
<br />
<br />
<asp:Button ID="btnUpdateTask" runat="server" Text="Update" OnClick="btnUpdateTask_Click" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel"
OnClick="btnCancel_Click" />
<br />
<br />
<asp:GridView ID="gvTaskList" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnPageIndexChanging="gvTaskList_PageIndexChanging">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="lblTaskId" runat="server" Text='<%# Bind("TaskID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Summary">
<ItemTemplate>
<asp:Label ID="lblSummary" runat="server" Text='<%# Bind("Summary") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:Label ID="lblDescription" runat="server" Text='<%# Bind("Description") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Created On">
<ItemTemplate>
<asp:Label ID="lblCreatedOn" runat="server" Text='<%# Bind("CreatedOn") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblStatusName" runat="server" Text='<%# Bind("StatusName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink2" runat="server" Text="Edit" NavigateUrl='<%# string.Format("Home.aspx?id={0}&op={1}", Eval("TaskID").ToString(), "edit") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="Delete" onClick="javascript: return confirm('Are you sure you want to delete?');" NavigateUrl='<%# string.Format("Home.aspx?id={0}&op={1}", Eval("TaskID").ToString(), "delete") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink3" runat="server" Text="View" NavigateUrl='<%# string.Format("Home.aspx?id={0}&op={1}", Eval("TaskID").ToString(), "view") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<br />
</div>
</form>
</body>
</html>
Home.aspx.cs
Now, right-click on PersonalTaskTracker project and select Set As StartUp Project.
Then, right-click on Home.aspx and select Set As Start Page and hit F5.
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace PersonalTaskTracker
{
/// <summary>
/// Home class.
/// </summary>
public partial class Home : System.Web.UI.Page
{
/// <summary>
/// List of tasks.
/// </summary>
List<Task> taskList = new List<Task>();
/// <summary>
/// Page Load method. It runs whenever the page loads.
/// </summary>
/// <param name="sender">sender.</param>
/// <param name="e">arguments of the event occurred.</param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
taskList = TaskList.GetAllTasks();
gvTaskList.DataSource = taskList;
gvTaskList.DataBind();
lblAddEdit.Text = "Add New Task";
if (Request.QueryString[Resource.operation] == Resource.edit || Request.QueryString[Resource.operation] == Resource.view)
{
if (Request.QueryString[Resource.operation] == Resource.edit)
{
lblAddEdit.Text = "Edit Task";
}
else
{
lblAddEdit.Text = "View Task";
txtDescription.Enabled = false;
txtSummary.Enabled = false;
cbxStatus.Enabled = false;
btnUpdateTask.Visible = false;
btnCancel.Visible = false;
}
int taskId = int.Parse(Request.QueryString["id"]);
Task task = Task.GetTask(taskId);
txtDescription.Text = task.Description;
txtSummary.Text = task.Summary;
lblTaskId.Text = task.TaskID.ToString();
lblStatusTxt.Visible = true;
cbxStatus.Visible = true;
btnAddNewTask.Visible = true;
if (task.StatusID == Resource.OPENSTATUS)
{
cbxStatus.Checked = false;
}
else if (task.StatusID == Resource.DONESTATUS)
{
cbxStatus.Checked = true;
}
}
else if (Request.QueryString[Resource.operation] == Resource.delete)
{
int taskId = int.Parse(Request.QueryString[Resource.idParameter]);
Task task = Task.GetTask(taskId);
task.DeleteTask();
Response.Redirect(Resource.HomeURL);
}
}
}
protected void gvTaskList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvTaskList.PageIndex = e.NewPageIndex;
gvTaskList.DataSource = taskList;
gvTaskList.DataBind();
}
/// <summary>
/// Event called whenever Add button is clicked.
/// </summary>
/// <param name="sender">sender.</param>
/// <param name="e">arguments of the event occured.</param>
protected void btnAddNewTask_Click(object sender, EventArgs e)
{
Task task = new Task();
task.Summary = txtSummary.Text;
task.Description = string.Empty;
task.CreatedOn = DateTime.Today;
task.StatusID = Resource.OPENSTATUS;
task.AddTask();
Response.Redirect(Resource.HomeURL);
}
/// <summary>
/// Event called whenever Update button is clicked.
/// </summary>
/// <param name="sender">sender.</param>
/// <param name="e">arguments of the event occurred.</param>
protected void btnUpdateTask_Click(object sender, EventArgs e)
{
if (Request.QueryString[Resource.operation] == Resource.edit)
{
int taskId = int.Parse(Request.QueryString[Resource.idParameter]);
Task task = Task.GetTask(taskId);
task.Description = txtDescription.Text;
task.Summary = txtSummary.Text;
task.StatusID = (cbxStatus.Checked == true) ? Resource.DONESTATUS : Resource.OPENSTATUS;
task.UpdateTask();
}
else if (Request.QueryString[Resource.operation] == Resource.add || Request.QueryString[Resource.operation] == null)
{
lblAddEdit.Text = "Add New Task";
Task task = new Task();
task.Summary = txtSummary.Text;
task.Description = txtDescription.Text;
task.StatusID = Resource.OPENSTATUS;
task.CreatedOn = DateTime.Now;
task.AddTask();
}
Response.Redirect(Resource.HomeURL);
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect(Resource.HomeURL);
}
protected void btnAddNewTask_Click1(object sender, EventArgs e)
{
Response.Redirect(Resource.HomeURL);
}
}
}

No comments:
Post a Comment