Use Events of Work Item List Control
- Last UpdatedJun 10, 2024
- 3 minute read
Code snippets for using events of Work Item List Control are explained below
Sample code snippets for adding a work item control and adding events. There are several delegate events available for work item control. They are InitializeDataSourceEvent, InitializeLayoutEvent, InitializeWorkItemRowEvent, ColumnsAlignmentEvent, ColumnstoMakeInVisible events.
The following code snippet shows how to add a work item list control using the events.
protected override void OnInit(EventArgs e)
{
Skelta.Entity.UserContext uContext = new Skelta.Entity.UserContext();
Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl WIL = new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl();
WIL.ApplicationName = uContext.Repository.ApplicationName;
WIL.UserIdString = uContext.LoggedInUserId;
WIL.ID = "WorkItemListControl";
WIL.DisplayGroupUI = true;
WIL.Height = Unit.Percentage(100);//680;
WIL.ReadingPaneInPopupWindow = true;
WIL.EnableHold = true;
WIL.ShowInboxViewOnly = false;
WIL.ShowManagerViewOnly = false;
WIL.DisplayLeftTreeMenuAtApplicationLevel = false;
WIL.ShowStandardColumns = true;
WIL.ShowDetailsonRowDoubleClick = true;
WIL.ShowWorkItemFields = true;
WIL.ColumnstoMakeInVisibleEvent += new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl.ColumnstoMakeInVisible(WIL_ColumnstoMakeInVisibleEvent);
WIL.InitializeDataSourceEvent += new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl.InitializeDataSource(WIL_InitializeDataSourceEvent);
WIL.InitializeWorkItemRowEvent += new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl.InitializeWorkItemRow(WIL_InitializeWorkItemRowEvent);
WIL.InitializeLayoutEvent += new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl.InitializeLayout(WIL_InitializeLayoutEvent);
WIL.ColumnsAlignmentEvent += new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkItemControl.ColumnsAlignment(WIL_ColumnsAlignmentEvent);
PanelWIL.Controls.Add(WIL);
}
Sample code snippet for adding a new column to the dataset which gets passed from the event used for showing the work item details grid.
/// <summary>
/// To add a new column to the dataset which gets passed from the event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void WIL_InitializeDataSourceEvent(object sender, Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorklistDataSourceEventArgs e)
{
DataColumn checkdatacolumn = new DataColumn();
checkdatacolumn.ColumnName = "New Column";
if (!e.workItemListDataSet.Tables[0].Columns.Contains(checkdatacolumn.ColumnName))
e.workItemListDataSet.Tables[0].Columns.Add(checkdatacolumn);
}
Sample code snippet for adding a new column to view it in the work item details grid.
/// <summary>
/// To add the new column to the see in the grid
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void WIL_InitializeLayoutEvent(object sender, Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorklistInitialzeLayoutEventArgs e)
{
Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListColumns workitemListcolumn = new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListColumns();
workitemListcolumn.Name = "New Column";
workitemListcolumn.Caption = "New Column";
workitemListcolumn.Bound = false;
workitemListcolumn.ColumnType = "text";
workitemListcolumn.Width = 50;
workitemListcolumn.AllowGrouping = false;
workitemListcolumn.AllowSorting = true;
workitemListcolumn.AllowSizing = false;
workitemListcolumn.WorkitemListColumnCollection.Add(workitemListcolumn.Name, workitemListcolumn);
e.WorkItemColumnsList = workitemListcolumn.WorkitemListColumnCollection;
}
Sample code snippet for setting values for the added column for the row in the work item details grid.
/// <summary>
/// To set the values for the added column for the row in the grid
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void WIL_InitializeWorkItemRowEvent(object sender, Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorklistDataRowEventArgs e)
{
DataRowView dr = e.WorkItemRowView;
string value = dr.Row["ExecutionId"].ToString();
e.WorkItemColumnTextandValue.Add("New Column", value);
}
Sample code snippet for aligning the columns and setting the formatstring. We have to specify the exact ColumnName and not the caption of the ColumnName.
/// <summary>
/// Event to use to align the columns and setting formatstring
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void WIL_ColumnsAlignmentEvent(object sender, Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorklistAlignmentArgs e)
{
Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListAlignmentColumns wilAlignColumns1 = new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListAlignmentColumns();
wilAlignColumns1.ColumnName = "ActivityDisplayName";
wilAlignColumns1.ColumnAlignment = "right";
Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListAlignmentColumns wilAlignColumns2 = new Skelta.HWS.WorkListChannel.Web.WorkItemListControl.WorkitemListAlignmentColumns();
wilAlignColumns2.ColumnName = "CreatedDateTime";
wilAlignColumns2.DataFormatString = "dd.MM.yyyy";
e.WorkitemAlignmentColumnList.Add(wilAlignColumns1.ColumnName, wilAlignColumns1);
e.WorkitemAlignmentColumnList.Add(wilAlignColumns2.ColumnName, wilAlignColumns2);
}
Options available for ColumnAlignment are: Left, Right, and Center.
Options available for DataFormatString are:
For Date Columns, you can define this format:
-
"dd.MM.yyyy" - It will display the date like 04.08.2008
-
"d" - It will display as short date like 08/26/2008
-
"D" - It will display as long date like Tuesday, August 26, 2008
For Numeric Columns you can define this format:
-
"N" - Displays as general format.
-
"F" - Displays as Fixed format.
-
"c" - Displays as Currency Format.
Sample code snippet for hiding the columns in the Work Item Details grid.
/// <summary>
/// To hide the columns
/// </summary>
/// <returns></returns>
string[] WIL_ColumnstoMakeInVisibleEvent()
{
string[] columns = new string[2] { "ResponseBy","CreatedDateTime"};
return columns;
}