DownLoad this project Please click here Workflow Task
<%@ Assembly
Name="$SharePoint.Project.AssemblyFullName$"
%>
<%@ Assembly
Name="Microsoft.Web.CommandUI,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@ Register
Tagprefix="SharePoint"
Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@ Register
Tagprefix="Utilities"
Namespace="Microsoft.SharePoint.Utilities"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@ Register
Tagprefix="asp"
Namespace="System.Web.UI"
Assembly="System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import
Namespace="Microsoft.SharePoint"
%>
<%@ Register
Tagprefix="WebPartPages"
Namespace="Microsoft.SharePoint.WebPartPages"
Assembly="Microsoft.SharePoint,
Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
<%@ Control
Language="C#"
AutoEventWireup="true"
CodeBehind="MyTaskEventUserControl.ascx.cs"
Inherits="MyWorkFLowTask.MyTaskEvent.MyTaskEventUserControl"
%>
<style>
.pagination td table
{
float: right;
}
</style>
<asp:UpdatePanel ID="upMyTasks" runat="server">
<ContentTemplate>
<div class="panelSection
actioncontainerfixed">
<h2 class="headercolor">
<span
class="actionrequired-img"></span>My Task</h2>
<div class="actionrequired-table">
<asp:GridView ID="spgrdMyTasks"
runat="server"
CssClass="clsTable"
AutoGenerateColumns="False"
RowStyle-CssClass="minutesrow"
AlternatingRowStyle-CssClass="minutesrow" AllowPaging="true"
AllowSorting="true"
PageSize="4"
PagerSettings-Mode="NextPrevious"
PagerSettings-NextPageImageUrl="../_layouts/15/Branding/images/right-nav-arrow.png"
PagerSettings-PreviousPageImageUrl="../_layouts/15/Branding/images/left-nav-arrow.png"
PagerStyle-CssClass="pagination" OnSorting="spgrdMyTasks_Sorting" OnPageIndexChanging="spgrdMyTasks_PageIndexChanging"
EmptyDataText="No
tasks to show" OnRowDataBound="spgrdMyTasks_RowDataBound" OnRowCreated="spgrdMyTasks_RowCreated">
<Columns>
<asp:TemplateField HeaderText="Request Name" SortExpression="Title">
<HeaderStyle />
<ItemTemplate>
<%# checkNull(Eval("Title"))%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Created Date" SortExpression="StartDate">
<HeaderStyle />
<ItemTemplate>
<%# checkDateNull(Eval("StartDate"))%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Due Date" SortExpression="DueDate">
<HeaderStyle />
<ItemTemplate>
<%# checkDateNull(Eval("DueDate"))%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Assigned To">
<HeaderStyle />
<ItemTemplate>
<%# checkNull(Eval("AssignedTo"))%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Current Status" SortExpression="Status">
<HeaderStyle />
<ItemTemplate>
<%# checkNull(Eval("Status"))%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="pagination_container">
<div>
<asp:Label ID="lblPageCount"
Visible="false"
CssClass="result"
runat="server"></asp:Label>
</div>
</div>
<div class="clear">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data;
using Microsoft.SharePoint;
namespace MyWorkFLowTask.MyTaskEvent
{
public partial class MyTaskEventUserControl
: UserControl
{
#region
Declarations
DataTable myTasks = new
DataTable();
public class Task
{
public string Subject
{ get; set; }
public string
ActionItem { get; set;
}
public string AssignedTo
{ get; set; }
public int MinuteID {
get; set; }
public int TaskID { get; set; }
public DateTime
DueDate { get; set;
}
public int Perc { get; set; }
}
#endregion
/// <summary>
/// Refresh Function
/// </summary>
public int Refresh
{
get { return 1; }
}
/// <summary>
/// Custom Method to check
Date null value
/// </summary>
/// <param name="myValue"></param>
/// <returns></returns>
public string
checkDateNull(object myValue)
{
string value = Convert.ToString(myValue);
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
else
{
return Convert.ToDateTime(myValue).ToString("MM/dd/yyyy");
}
}
/// <summary>
/// Custom Method to check
object null value
/// </summary>
/// <param name="myValue"></param>
/// <returns></returns>
public string
checkNull(object myValue)
{
string value = Convert.ToString(myValue);
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
else
{
return myValue.ToString();
}
}
/// <summary>
/// Page Load Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void
Page_Load(object sender, EventArgs e)
{
SPWeb web = SPContext.Current.Web;
try
{
if (!Page.IsPostBack)
{
BindMyTasks();
}
}
catch (Exception
exp)
{
//
}
finally
{
//
}
}
/// <summary>
/// Custom Method to get Tasks from SP List
/// </summary>
/// <returns></returns>
DataTable GetMyTasks()
{
DataTable itmcoll = new
DataTable();
DataTable dt = new
DataTable();
try
{
SPWeb web = SPContext.Current.Web;
SPUser user = web.CurrentUser;
SPList task = web.Lists.TryGetList("Workflow Tasks");
SPListItemCollection items =
task.Items;
itmcoll = items.GetDataTable();
var query = from
c in itmcoll.AsEnumerable()
// where Convert.ToString(c["AssignedTo"]) ==
SPContext.Current.Web.CurrentUser.Name
select c;
dt = query.CopyToDataTable();
if (dt != null)
{
foreach (DataRow
item in dt.Rows)
{
item["PercentComplete"] = Convert.ToInt32(Convert.ToDecimal(item["PercentComplete"]) * 100);
string Title = Convert.ToString(item["Title"]);
if (Title.Length > 22)
{
Title =
Title.Substring(0, 22) + "...";
item["Title"] = Title;
}
}
}
}
catch (Exception
exp)
{
//
}
finally
{
//
}
return dt;
}
/// <summary>
/// Custom Method to bind
tasks to the grid
/// </summary>
protected void
BindMyTasks()
{
try
{
spgrdMyTasks.PagerTemplate = null;
myTasks = GetMyTasks();
if (ViewState["SortExpression"]
!= null && !string.IsNullOrEmpty(Convert.ToString(ViewState["SortExpression"])))
{
myTasks = SortTable(myTasks);
}
spgrdMyTasks.DataSource = myTasks;
spgrdMyTasks.DataBind();
if (myTasks != null
&& myTasks.Rows.Count > 0)
{
lblPageCount.Text = Convert.ToString(myTasks.Rows.Count)
+ " Records";
}
else
{
lblPageCount.Text = "No Records
Found";
}
}
catch (Exception
exp)
{
//
}
finally
{
//
}
}
/// <summary>
/// Custom method to sort
Grid Data
/// </summary>
/// <param name="dtGridData"></param>
/// <returns></returns>
DataTable SortTable(DataTable
dtGridData)
{
try
{
DataView dvGridDataView =
dtGridData.DefaultView;
string strSortOrder = string.Empty;
if (gridViewSortDirection == SortDirection.Ascending)
{
strSortOrder = "asc";
}
else
{
gridViewSortDirection = SortDirection.Ascending;
strSortOrder = "desc";
}
dvGridDataView.Sort = ViewState["SortExpression"]
+ " " + strSortOrder;
dtGridData = dvGridDataView.ToTable();
}
catch (Exception
exp)
{
//
}
finally
{
//
}
return dtGridData;
}
/// <summary>
/// Page Index Changing
Event for the Grid
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void
spgrdMyTasks_PageIndexChanging(object sender,
System.Web.UI.WebControls.GridViewPageEventArgs
e)
{
try
{
spgrdMyTasks.PageIndex = e.NewPageIndex;
BindMyTasks();
}
catch (Exception
exp)
{
//
}
finally
{
//
}
}
/// <summary>
/// Row Created Event for
the Grid
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void
spgrdMyTasks_RowCreated(object sender,
System.Web.UI.WebControls.GridViewRowEventArgs
e)
{
try
{
if (e.Row.RowType == DataControlRowType.Header)
{
int sortColumnIndex =
getSortColumnIndex();
if (sortColumnIndex != -1)
{
addSortImage(sortColumnIndex, e.Row);
}
}
}
catch (Exception
exp)
{
//
}
finally
{
//
}
}
/// <summary>
/// Grid Data Sorting Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void
spgrdMyTasks_Sorting(object sender,
System.Web.UI.WebControls.GridViewSortEventArgs
e)
{
try
{
DataTable dtGridData = GetMyTasks();
ViewState["SortExpression"]
= e.SortExpression;
DataView dvGridDataView =
dtGridData.DefaultView;
string strSortOrder = "";
if (gridViewSortDirection == SortDirection.Ascending)
{
gridViewSortDirection = SortDirection.Descending;
strSortOrder = "desc";
}
else
{
gridViewSortDirection = SortDirection.Ascending;
strSortOrder = "asc";
}
dvGridDataView.Sort = ViewState["SortExpression"]
+ " " + strSortOrder;
dtGridData = dvGridDataView.ToTable();
spgrdMyTasks.DataSource = dtGridData;
spgrdMyTasks.DataBind();
}
catch (Exception exp)
{
//
}
finally
{
//
}
}
/// <summary>
/// Gets the Column Index
of the Columns based on which the Sorting should be done.
/// </summary>
/// <returns></returns>
private int
getSortColumnIndex()
{
try
{
foreach (DataControlField
field in spgrdMyTasks.Columns)
{
if (field.SortExpression == (string)ViewState["SortExpression"])
{
return spgrdMyTasks.Columns.IndexOf(field);
}
}
}
catch (Exception
exp)
{
//
}
finally
{
//
}
return -1;
}
/// <summary>
/// This method swaps the
sort direction of the Grid based upon the current sorted direction.
/// If the current sorted
order is Ascending then the new sort direction will be Descending
/// or Vice versa.
/// </summary>
private SortDirection
gridViewSortDirection
{
get
{
if (ViewState["SortOrder"]
== null)
{
ViewState["SortOrder"] = SortDirection.Ascending;
}
return (SortDirection)ViewState["SortOrder"];
}
set
{
ViewState["SortOrder"] = value;
}
}
/// <summary>
/// Adds Sort Image to
Sorted Column.
/// </summary>
/// <param name="columnIndex"></param>
/// <param name="headerRow"></param>
private void
addSortImage(int columnIndex, GridViewRow headerRow)
{
try
{
// Create the sorting image based on the sort
direction.
Image sortImage = new Image();
if (gridViewSortDirection == SortDirection.Ascending)
{
sortImage.ImageUrl = "~/_layouts/15/Branding/images/up_arrow.png";
sortImage.AlternateText = "Ascending Order";
}
else
{
sortImage.ImageUrl = "~/_layouts/15/Branding/images/Down_arrow.png";
sortImage.AlternateText = "Descending
Order";
}
// Add the image to the appropriate header
cell.
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
catch (Exception
exp)
{
//
}
finally
{
//
}
}
protected void
spgrdMyTasks_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Pager)
{
int count =
e.Row.Cells[0].Controls[0].Controls[0].Controls.Count;
if (count == 1)
{
if (spgrdMyTasks.PageIndex == 0)
{
TableCell next = (TableCell)e.Row.Cells[0].Controls[0].Controls[0].Controls[0];
next.ToolTip = "Next";
}
else
{
TableCell prev = (TableCell)e.Row.Cells[0].Controls[0].Controls[0].Controls[0];
prev.ToolTip = "Previous";
}
}
else if
(count == 2)
{
TableCell prev = (TableCell)e.Row.Cells[0].Controls[0].Controls[0].Controls[0];
prev.ToolTip = "Previous";
TableCell next = (TableCell)e.Row.Cells[0].Controls[0].Controls[0].Controls[1];
next.ToolTip = "Next";
}
}
}
}
}
No comments:
Post a Comment