I have code that loads the control that contains the radgird like this:
But the problem is I need to load my data into the grid with
So this is being called before I have the chance to load a specific data into the page
So what I need is somehow be able to set properties on that user control BEFORE the NeedDatasrouce so that the NeedDataSource has the parameters it needs.. How would I do that? The cheating way is perhaps just make a session variable but that seems ugly.. here is the rest of the relevant code (The control being called )
if (ControlToLoad == "ConCapitalDetailsPS")
{
Financial.ConCapitalDetails ucConCapitalDetails = Page.LoadControl("~/Grants/Phases/Financial/ConCapitalDetails.ascx") as Financial.ConCapitalDetails;
ucConCapitalDetails.ID = "ConCapitalDetailsPS";
PhaseContent.Controls.Clear();
PhaseContent.Controls.Add(ucConCapitalDetails);
ucConCapitalDetails.ActivePhase = ActivePhase;
ucConCapitalDetails.BindData();
}
But the problem is I need to load my data into the grid with
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
So this is being called before I have the chance to load a specific data into the page
//int iGrantID = ActivePhase.GrantId;
//int iPhaseID = ActivePhase.Id;
So what I need is somehow be able to set properties on that user control BEFORE the NeedDatasrouce so that the NeedDataSource has the parameters it needs.. How would I do that? The cheating way is perhaps just make a session variable but that seems ugly.. here is the rest of the relevant code (The control being called )
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Thc.Gms.Services;
using Thc.Gms.Core;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
using System.Transactions;
using System.Data.Common;
using Telerik.Web.UI;
namespace Thc.Gms.Web.UI.Grants.Phases.Financial
{
public partial class HistoricExpenditures : System.Web.UI.UserControl
{
public Thc.Gms.Core.Phase ActivePhase
{
get { return ViewState["Phase"] as Thc.Gms.Core.Phase; }
set
{
this.ViewState.Add("Phase", value);
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
Thc.Gms.Core.Phase ActivePhaseSession = (Phase)Session["ActivePhase"];
int iGrantID = 267;
int iPhaseID = 1517;
//int iGrantID = ActivePhase.GrantId;
//int iPhaseID = ActivePhase.Id;
//GrantService gService = new GrantService();
//Grant grant = gService.FindBy(ActivePhase.GrantId);
//City.Text = grant.Address.City;
//State.Text = grant.Address.State.Abbreviation;
//GrantName.Text = grant.Name;
//PhaseNameTitle.Text = ActivePhase.Name;
string sql = "[dbo].[financial_getExpendituresByFtaskId]";
Database _database = DatabaseFactory.CreateDatabase("GMSData");
DataSet tempDataset = new DataSet();
DataTable DetailsData = new DataTable("Details");
DetailsData.Columns.Add("ftaskid");
DetailsData.Columns.Add("level2", typeof(string));
tempDataset.Tables.Add(DetailsData);
using (TransactionScope scope = new TransactionScope())
{
using (DbCommand command = _database.GetStoredProcCommand(sql))
{
_database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID);
_database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID);
_database.LoadDataSet(command, tempDataset, "Details");
}
scope.Complete();
}
RadGrid1.DataSource = tempDataset;
}
public void BindData()
{
//int iGrantID = ActivePhase.GrantId;
//int iPhaseID = ActivePhase.Id;
//GrantService gService = new GrantService();
//Grant grant = gService.FindBy(ActivePhase.GrantId);
//City.Text = grant.Address.City;
//State.Text = grant.Address.State.Abbreviation;
//GrantName.Text = grant.Name;
//PhaseNameTitle.Text = ActivePhase.Name;
//string sql = "[dbo].[financial_getExpendituresByFtaskId]";
//Database _database = DatabaseFactory.CreateDatabase("GMSData");
//DataSet tempDataset = new DataSet();
//DataTable DetailsData = new DataTable("Details");
//DetailsData.Columns.Add("ftaskid");
//DetailsData.Columns.Add("level2", typeof(string));
//tempDataset.Tables.Add(DetailsData);
//using (TransactionScope scope = new TransactionScope())
//{
// using (DbCommand command = _database.GetStoredProcCommand(sql))
// {
// _database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID);
// _database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID);
// _database.LoadDataSet(command, tempDataset, "Details");
// }
// scope.Complete();
//}
//RadGrid1.DataSource = tempDataset;
//RadGrid1.DataBind();
}
protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)
{
int iGrantID = ActivePhase.GrantId;
int iPhaseID = ActivePhase.Id;
int iUserID = SessionHelper.CurrentUser.Id;
GridEditableItem editedItem = e.Item as GridEditableItem;
int iFTaskID = Int32.Parse(editedItem.GetDataKeyValue("ftaskid").ToString());
int iQtr = Int32.Parse((editedItem["Qtr"].Controls[0] as TextBox).Text);
int iYear = Int32.Parse((editedItem["Year"].Controls[0] as TextBox).Text);
decimal dHP6 = decimal.Parse((editedItem["H6_Exp"].Controls[0] as TextBox).Text);
decimal dPH6 = decimal.Parse((editedItem["PH_Exp"].Controls[0] as TextBox).Text);
decimal dOth6 = decimal.Parse((editedItem["Oth_Exp"].Controls[0] as TextBox).Text);
decimal dFF6 = decimal.Parse((editedItem["FF_Exp"].Controls[0] as TextBox).Text);
Dictionary<
string
, decimal> ExpColl = new Dictionary<
string
, decimal>();
ExpColl.Add("H6", dHP6);
ExpColl.Add("PH", dPH6);
ExpColl.Add("Oth", dOth6);
ExpColl.Add("FF", dFF6);
foreach (KeyValuePair<
string
, decimal> item in ExpColl)
{
string sql = "[dbo].[financial_setExpendituresByYearQtr]";
Database _database = DatabaseFactory.CreateDatabase("GMSData");
using (TransactionScope scope = new TransactionScope())
{
using (DbCommand command = _database.GetStoredProcCommand(sql))
{
_database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID);
_database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID);
_database.AddInParameter(command, "@ftaskId", DbType.Int32, iFTaskID);
_database.AddInParameter(command, "@amount", DbType.Decimal, item.Value);
_database.AddInParameter(command, "@fundtype ", DbType.String, item.Key);
_database.AddInParameter(command, "@year", DbType.Int32, iYear);
_database.AddInParameter(command, "@qtr", DbType.Int32, iQtr);
_database.AddInParameter(command, "@userid", DbType.Int32, iUserID);
_database.ExecuteNonQuery(command);
}
scope.Complete();
}
}
}
protected void RadGrid1_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
{
int iGrantID = ActivePhase.GrantId;
int iPhaseID = ActivePhase.Id;
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
int iCategoryID = Int32.Parse(dataItem.GetDataKeyValue("FTaskID").ToString());
string sql = "[dbo].[financial_getExpendituresOVerTime]";
Database _database = DatabaseFactory.CreateDatabase("GMSData");
DataSet tempDataset = new DataSet();
DataTable DetailsData = new DataTable("Details");
DetailsData.Columns.Add("ftaskid");
DetailsData.Columns.Add("qtr", typeof(int));
DetailsData.Columns.Add("year", typeof(int));
DetailsData.Columns.Add("H6_Exp", typeof(decimal));
DetailsData.Columns.Add("H6_Use", typeof(decimal));
DetailsData.Columns.Add("PH_Exp", typeof(decimal));
DetailsData.Columns.Add("PH_Use", typeof(decimal));
DetailsData.Columns.Add("Oth_Exp", typeof(decimal));
DetailsData.Columns.Add("Oth_Use", typeof(decimal));
DetailsData.Columns.Add("FF_Exp", typeof(decimal));
DetailsData.Columns.Add("FF_Use", typeof(decimal));
tempDataset.Tables.Add(DetailsData);
using (TransactionScope scope = new TransactionScope())
{
using (DbCommand command = _database.GetStoredProcCommand(sql))
{
_database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID);
_database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID);
_database.AddInParameter(command, "@ftaskId", DbType.Int32, iCategoryID);
_database.LoadDataSet(command, tempDataset, "Details");
}
scope.Complete();
}
RadGrid1.DataSource = tempDataset;
// RadGrid1.DataBind();
}
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.Name == "GridDetails")
{
GridEditFormItem editItem = (GridEditFormItem)e.Item;
if (false)
{
TextBox txt = (TextBox)editItem.FindControl("unH6_Exp");
txt.ReadOnly = true;
}
}
}
}
}