2 Answers, 1 is accepted
0
Hello hirak,
Such event is not available since the ASP and WPF platforms are quite different. Could you please give more details about what you are trying to achieve so that we can provide you with the best alternative to OnItemDataBound.
Greetings,
Milan
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
hirak
Top achievements
Rank 1
answered on 02 Mar 2011, 08:54 AM
Hi Milan,
In web based development I have the following code:
ASPX Code:
<telerik:RadGrid ID="RadGridCurrentTradeWorkItems" runat="server" AllowMultiRowEdit="false"
AllowPaging="false" AllowSorting="True" AutoGenerateColumns="False" EnableEmbeddedSkins="false"
EnableViewState="true" GridLines="None" OnItemCommand="RadGridCurrentTradeWorkItems_ItemCommand"
OnItemCreated="RadGridCurrentTradeWorkItems_ItemCreated" OnItemDataBound="RadGridCurrentTradeWorkItems_ItemDataBound"
OnPreRender="RadGridCurrentTradeWorkItems_PreRender" Skin="Ssg_Default" Width="99.8%"
Height="97%">
Code Behind(C#) Code:
protected void RadGridCurrentTradeWorkItems_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
this.CurrentTradeWorkItemId = (int)item.OwnerTableView.DataKeyValues[item.ItemIndex][item.OwnerTableView.DataKeyNames[0]];
this.WorkStateId = (int)item.OwnerTableView.DataKeyValues[item.ItemIndex][item.OwnerTableView.DataKeyNames[1]];
this.CompositeWorkStateId = Convert.ToInt32(item["CompositeWorkStateId"].Text);
switch (e.CommandName)
{
case "Select":
if (!TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, this.CompositeWorkStateId))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + "') </script>");
this.BindRadGridCurrentTradeWorkItems();
}
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Pick":
///Checking The TWI is already Picked
if (!TWIService.PickTradeWorkItem( new TWI{ TradeWorkItemId = this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, WorkStateId = this.WorkStateId, CompositeWorkStateId = this.CompositeWorkStateId}))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIPICKEDORMODIFIEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Release":
int assignmentId = Convert.ToInt32(item["AssignmentId"].Text);
if (!TWIService.ReleaseTradeWorkItem(new TWI{ TradeWorkItemId= this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, AssignmentId = assignmentId, WorkStateId = this.WorkStateId}))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIRELEASEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Unlock":
if (!TWIService.UnlockTradeWorkItem(new TWI { TradeWorkItemId = this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, AssignmentId = Convert.ToInt32(item["AssignmentId"].Text), WorkStateId = this.WorkStateId }))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIRELEASEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Promote":
string comment = string.Empty;
int nextWorkStateId = TWIService.GetTradeStateId();// WorkItemStateType.Trade.WorkItemStateTypeCode;
int portfolioId = Convert.ToInt32(item["PortfolioId"].Text);
if (TWIService.IsItInTargetState(this.WorkStateId))
{
comment = this.CurrentUserName + " has confirmed with the client that there are no changes to the Investment Policy Statement (IPS) this month.";
nextWorkStateId = TWIService.GetTargetApprovedStateId();
PortfolioService.InsertApprovedDate(portfolioId, this.CurrentUserName);
}
else if (TWIService.IsItInCashFlowState(this.WorkStateId))
{
comment = this.CurrentUserName + " confirmed with the client that there are no cash needs during this month’s rebalancing.";
nextWorkStateId = TWIService.GetCashflowApprovedStateId(); //WorkItemStateType.CDTApproved.WorkItemStateTypeCode;
}
else if (TWIService.IsItInTargetReviewState(this.WorkStateId))
{
comment = "PROMOTED DIRECTLY FROM TARGET REVIEW TO TRADE";
nextWorkStateId = TWIService.GetTargetApprovedStateId();
// inserting the targetapporved date for the portfolio
PortfolioService.InsertApprovedDate(portfolioId, this.CurrentUserName);
}
else if (TWIService.IsItInCashFlowReviewState(this.WorkStateId))
{
comment = "PROMOTED DIRECTLY FROM CASHFLOW REVIEW TO TRADE";
nextWorkStateId = TWIService.GetCashflowApprovedStateId();
}
bool promoteSucceeded = true;
string alertMessage = string.Empty;
if (TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, this.CompositeWorkStateId))
{
// State has not changed. Proceed to promote
if (!TWIService.PromoteToTrade(
new TWI
{
TradeWorkItemId = this.CurrentTradeWorkItemId,
CurrentUserName = this.CurrentUserName,
WorkStateId = this.WorkStateId,
AssignmentId = null
},
comment,
true))
{
promoteSucceeded = false;
alertMessage = TWIPICKEDMSG;
}
}
else
{
// State has changed.Can not be promoted.
promoteSucceeded = false;
alertMessage = TWIMODIFIEDMSG;
}
this.BindRadGridCurrentTradeWorkItems();
if (promoteSucceeded)
{
this.WorkStateId = nextWorkStateId;
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
}
else
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + alertMessage + "') </script>");
this.RadPaneWorkItemsBottom.Visible = false;
}
break;
case "SnapShot":
string strScripts = "<script type='text/javascript'>\n";
strScripts += "window.open(\"TradeSnapShot.aspx?TrdWrkID=" + this.CurrentTradeWorkItemId;
strScripts += "\", 'SnapShot', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=750,height=650,top=100,screenX=40,screenY=100');";
strScripts += "</script>";
this.ClientScript.RegisterStartupScript(typeof(Page), "LoadSnapShot", strScripts);
break;
case "Edit":
if (!TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, Convert.ToInt32(item["CompositeWorkStateId"].Text)) || !TWIService.CheckWorkItemEditable(this.CurrentTradeWorkItemId, this.WorkStateId))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + "') </script>");
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
}
this.BindRadGridCurrentTradeWorkItems();
break;
}
}
else
{
switch (e.CommandName)
{
case RadGrid.PerformInsertCommandName:
if (!Page.IsValid)
{
return;
}
GridEditFormInsertItem itemInsert = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
if ((itemInsert.FindControl("editPortfolio") as RadComboBox).Items.Count == 0)
return;
Hashtable newValues = new Hashtable();
itemInsert.OwnerTableView.ExtractValuesFromItem(newValues, itemInsert);
TWI objTWI = new TWI();
objTWI.TradeDate = ((RadDatePicker)itemInsert.FindControl("editTradeDate")).SelectedDate.Value;
objTWI.PortfolioId = Convert.ToInt32(((RadComboBox)itemInsert.FindControl("editPortfolio")).SelectedValue);
objTWI.CurrentUserName = this.CurrentUserName;
int iTradeWorkItemStateType = Convert.ToInt32(((RadComboBox)itemInsert.FindControl("editTWIStateType")).SelectedValue);
switch (iTradeWorkItemStateType)
{
case 1:
// create the work item in Target/Cash Flow state
TWIService.CreateTradeWorkItem(objTWI, false);
break;
case 2:
// create the work item in trade state
TWIService.CreateTradeWorkItem(objTWI, true);
break;
}
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.InitInsertCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.RebindGridCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.UpdateCommandName:
if (!Page.IsValid)
{
return;
}
GridEditFormItem updateItem = (GridEditFormItem)e.Item;
string comments = Convert.ToString(((RadTextBox)updateItem.FindControl("editComments")).Text);
TWI objTwi = new TWI();
objTwi.TradeDate = ((RadDatePicker)updateItem.FindControl("editTradeDate")).SelectedDate.Value;
objTwi.TradeWorkItemId = Convert.ToInt32(updateItem["TradeWorkItemId"].Text); ;
objTwi.WorkStateId = Convert.ToInt32(updateItem["WorkItemStateTypeCode"].Text);
objTwi.ActionTypeId = Convert.ToInt32(updateItem["TradeWorkItemActionTypeCode"].Text);
objTwi.CompositeWorkStateId = Convert.ToInt32(updateItem["CompositeWorkStateId"].Text);
objTwi.CurrentUserName = this.CurrentUserName;
if (!TWIService.UpdateTradeWorkItem(objTwi, comments))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + " ') </script>");
this.BindRadGridCurrentTradeWorkItems();
}
else
{
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
MakeAllUserControlsInvisible();
}
break;
case RadGrid.CancelCommandName:
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.SortCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
}
}
}
How do I achive the above OnItemDataBound functionality in RadGridView control in Windows based development.
Early reply to this solution will be highly appreciated.
Thanks & Regards,
Hirak
In web based development I have the following code:
ASPX Code:
<telerik:RadGrid ID="RadGridCurrentTradeWorkItems" runat="server" AllowMultiRowEdit="false"
AllowPaging="false" AllowSorting="True" AutoGenerateColumns="False" EnableEmbeddedSkins="false"
EnableViewState="true" GridLines="None" OnItemCommand="RadGridCurrentTradeWorkItems_ItemCommand"
OnItemCreated="RadGridCurrentTradeWorkItems_ItemCreated" OnItemDataBound="RadGridCurrentTradeWorkItems_ItemDataBound"
OnPreRender="RadGridCurrentTradeWorkItems_PreRender" Skin="Ssg_Default" Width="99.8%"
Height="97%">
Code Behind(C#) Code:
protected void RadGridCurrentTradeWorkItems_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
this.CurrentTradeWorkItemId = (int)item.OwnerTableView.DataKeyValues[item.ItemIndex][item.OwnerTableView.DataKeyNames[0]];
this.WorkStateId = (int)item.OwnerTableView.DataKeyValues[item.ItemIndex][item.OwnerTableView.DataKeyNames[1]];
this.CompositeWorkStateId = Convert.ToInt32(item["CompositeWorkStateId"].Text);
switch (e.CommandName)
{
case "Select":
if (!TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, this.CompositeWorkStateId))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + "') </script>");
this.BindRadGridCurrentTradeWorkItems();
}
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Pick":
///Checking The TWI is already Picked
if (!TWIService.PickTradeWorkItem( new TWI{ TradeWorkItemId = this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, WorkStateId = this.WorkStateId, CompositeWorkStateId = this.CompositeWorkStateId}))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIPICKEDORMODIFIEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Release":
int assignmentId = Convert.ToInt32(item["AssignmentId"].Text);
if (!TWIService.ReleaseTradeWorkItem(new TWI{ TradeWorkItemId= this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, AssignmentId = assignmentId, WorkStateId = this.WorkStateId}))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIRELEASEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Unlock":
if (!TWIService.UnlockTradeWorkItem(new TWI { TradeWorkItemId = this.CurrentTradeWorkItemId, CurrentUserName = this.CurrentUserName, AssignmentId = Convert.ToInt32(item["AssignmentId"].Text), WorkStateId = this.WorkStateId }))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIRELEASEDMSG + "') </script>");
}
this.BindRadGridCurrentTradeWorkItems();
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
break;
case "Promote":
string comment = string.Empty;
int nextWorkStateId = TWIService.GetTradeStateId();// WorkItemStateType.Trade.WorkItemStateTypeCode;
int portfolioId = Convert.ToInt32(item["PortfolioId"].Text);
if (TWIService.IsItInTargetState(this.WorkStateId))
{
comment = this.CurrentUserName + " has confirmed with the client that there are no changes to the Investment Policy Statement (IPS) this month.";
nextWorkStateId = TWIService.GetTargetApprovedStateId();
PortfolioService.InsertApprovedDate(portfolioId, this.CurrentUserName);
}
else if (TWIService.IsItInCashFlowState(this.WorkStateId))
{
comment = this.CurrentUserName + " confirmed with the client that there are no cash needs during this month’s rebalancing.";
nextWorkStateId = TWIService.GetCashflowApprovedStateId(); //WorkItemStateType.CDTApproved.WorkItemStateTypeCode;
}
else if (TWIService.IsItInTargetReviewState(this.WorkStateId))
{
comment = "PROMOTED DIRECTLY FROM TARGET REVIEW TO TRADE";
nextWorkStateId = TWIService.GetTargetApprovedStateId();
// inserting the targetapporved date for the portfolio
PortfolioService.InsertApprovedDate(portfolioId, this.CurrentUserName);
}
else if (TWIService.IsItInCashFlowReviewState(this.WorkStateId))
{
comment = "PROMOTED DIRECTLY FROM CASHFLOW REVIEW TO TRADE";
nextWorkStateId = TWIService.GetCashflowApprovedStateId();
}
bool promoteSucceeded = true;
string alertMessage = string.Empty;
if (TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, this.CompositeWorkStateId))
{
// State has not changed. Proceed to promote
if (!TWIService.PromoteToTrade(
new TWI
{
TradeWorkItemId = this.CurrentTradeWorkItemId,
CurrentUserName = this.CurrentUserName,
WorkStateId = this.WorkStateId,
AssignmentId = null
},
comment,
true))
{
promoteSucceeded = false;
alertMessage = TWIPICKEDMSG;
}
}
else
{
// State has changed.Can not be promoted.
promoteSucceeded = false;
alertMessage = TWIMODIFIEDMSG;
}
this.BindRadGridCurrentTradeWorkItems();
if (promoteSucceeded)
{
this.WorkStateId = nextWorkStateId;
SetSelectedTradeWorkItemInDashboard(this.CurrentTradeWorkItemId, this.WorkStateId);
RowItemSelected();
}
else
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + alertMessage + "') </script>");
this.RadPaneWorkItemsBottom.Visible = false;
}
break;
case "SnapShot":
string strScripts = "<script type='text/javascript'>\n";
strScripts += "window.open(\"TradeSnapShot.aspx?TrdWrkID=" + this.CurrentTradeWorkItemId;
strScripts += "\", 'SnapShot', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=750,height=650,top=100,screenX=40,screenY=100');";
strScripts += "</script>";
this.ClientScript.RegisterStartupScript(typeof(Page), "LoadSnapShot", strScripts);
break;
case "Edit":
if (!TWIService.CheckStateNotChanged(this.CurrentTradeWorkItemId, Convert.ToInt32(item["CompositeWorkStateId"].Text)) || !TWIService.CheckWorkItemEditable(this.CurrentTradeWorkItemId, this.WorkStateId))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + "') </script>");
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
}
this.BindRadGridCurrentTradeWorkItems();
break;
}
}
else
{
switch (e.CommandName)
{
case RadGrid.PerformInsertCommandName:
if (!Page.IsValid)
{
return;
}
GridEditFormInsertItem itemInsert = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
if ((itemInsert.FindControl("editPortfolio") as RadComboBox).Items.Count == 0)
return;
Hashtable newValues = new Hashtable();
itemInsert.OwnerTableView.ExtractValuesFromItem(newValues, itemInsert);
TWI objTWI = new TWI();
objTWI.TradeDate = ((RadDatePicker)itemInsert.FindControl("editTradeDate")).SelectedDate.Value;
objTWI.PortfolioId = Convert.ToInt32(((RadComboBox)itemInsert.FindControl("editPortfolio")).SelectedValue);
objTWI.CurrentUserName = this.CurrentUserName;
int iTradeWorkItemStateType = Convert.ToInt32(((RadComboBox)itemInsert.FindControl("editTWIStateType")).SelectedValue);
switch (iTradeWorkItemStateType)
{
case 1:
// create the work item in Target/Cash Flow state
TWIService.CreateTradeWorkItem(objTWI, false);
break;
case 2:
// create the work item in trade state
TWIService.CreateTradeWorkItem(objTWI, true);
break;
}
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.InitInsertCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.RebindGridCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.UpdateCommandName:
if (!Page.IsValid)
{
return;
}
GridEditFormItem updateItem = (GridEditFormItem)e.Item;
string comments = Convert.ToString(((RadTextBox)updateItem.FindControl("editComments")).Text);
TWI objTwi = new TWI();
objTwi.TradeDate = ((RadDatePicker)updateItem.FindControl("editTradeDate")).SelectedDate.Value;
objTwi.TradeWorkItemId = Convert.ToInt32(updateItem["TradeWorkItemId"].Text); ;
objTwi.WorkStateId = Convert.ToInt32(updateItem["WorkItemStateTypeCode"].Text);
objTwi.ActionTypeId = Convert.ToInt32(updateItem["TradeWorkItemActionTypeCode"].Text);
objTwi.CompositeWorkStateId = Convert.ToInt32(updateItem["CompositeWorkStateId"].Text);
objTwi.CurrentUserName = this.CurrentUserName;
if (!TWIService.UpdateTradeWorkItem(objTwi, comments))
{
this.ClientScript.RegisterStartupScript(typeof(Page), "IsTWIPicked", "<script type=\"text/javascript\"> alert('" + TWIMODIFIEDMSG + " ') </script>");
this.BindRadGridCurrentTradeWorkItems();
}
else
{
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
MakeAllUserControlsInvisible();
}
break;
case RadGrid.CancelCommandName:
e.Canceled = true;
e.Item.OwnerTableView.ClearChildEditItems();
e.Item.OwnerTableView.IsItemInserted = false;
this.BindRadGridCurrentTradeWorkItems();
break;
case RadGrid.SortCommandName:
this.BindRadGridCurrentTradeWorkItems();
break;
}
}
}
How do I achive the above OnItemDataBound functionality in RadGridView control in Windows based development.
Early reply to this solution will be highly appreciated.
Thanks & Regards,
Hirak