protected void TimberTaxMaintGridItemCommand(object sender, GridCommandEventArgs e)
{
switch(e.CommandName)
{
case GridCommands.PerformInsertTafCommandName:
PerformInsertTaf( e );
break;
case GridCommands.PerformInsertRateCommandName:
PerformInsertRate( e );
break;
case GridCommands.CopyRateCommandName:
CopyRate( e );
break;
case GridCommands.EditRateCommandName:
//Since we use Form Template to insert/edit we need to know when we're editing to handle user clicking Apply differently
_editingRate = true;
EditRate( e );
break;
case GridCommands.UpdateRateCommandName:
UpdateRate( e );
break;
case GridCommands.DeleteTafCommandName:
break;
case GridCommands.DeleteRateCommandName:
break;
}
}
protected void TimberTaxMaintGridItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item.OwnerTableView.Name == "TAGRates" && e.Item is GridEditableItem && e.Item.IsInEditMode && _editingRate)
{
var item = ( GridEditableItem ) e.Item;
var tagControl = ( RadComboBox ) item.FindControl( "NewTag" );
var rateControl = ( RadNumericTextBox )item.FindControl( "NewRate" );
var applyControl = ( RadButton ) item.FindControl( "AddRate" );
if (tagControl == null || rateControl == null || applyControl == null)
{
Ctl.Messages.Add( "Unexpected error occured while editing TAG rate.", MessageType.Error );
return;
}
var dataItem = ( TimberTaxYieldRate ) item.DataItem;
tagControl.SelectedValue = dataItem.TagId.ToString( CultureInfo.InvariantCulture );
rateControl.Value = Convert.ToDouble( dataItem.Rate );
}
}
private void EditRate(GridCommandEventArgs e)
{
if ( e.Item.OwnerTableView.ChildSelectedItems.Count != 1 )
{
Ctl.Messages.Add( "Please select 1 TAG Rate to edit.", MessageType.Error );
return;
}
var selectedItem = ( GridDataItem ) e.Item.OwnerTableView.ChildSelectedItems[ 0 ];
selectedItem.FireCommandEvent( RadGrid.EditCommandName, null );
}
private void UpdateRate(GridCommandEventArgs e)
{
var item = ( GridEditableItem ) e.Item;
var tagControl = ( RadComboBox ) item.FindControl( "NewTag" );
var rateControl = ( RadNumericTextBox ) item.FindControl( "NewRate" );
if (tagControl == null || rateControl == null) return;
var rate = rateControl.Value == null ? 0m : Convert.ToDecimal(rateControl.Value.Value);
var tagId = Convert.ToInt32(tagControl.SelectedValue);
var tag = Ctl.TaxAuthorityGroups.First(t => t.Id == tagId);
Ctl.DataSource[ item.OwnerTableView.ParentItem.DataSetIndex ].Rates[ item.DataSetIndex ].TagId = tag.Id;
Ctl.DataSource[ item.OwnerTableView.ParentItem.DataSetIndex ].Rates[ item.DataSetIndex ].TagShortDescr = tag.ShortDescr;
Ctl.DataSource[ item.OwnerTableView.ParentItem.DataSetIndex ].Rates[ item.DataSetIndex ].TagDescr = tag.Descr;
Ctl.DataSource[ item.OwnerTableView.ParentItem.DataSetIndex ].Rates[ item.DataSetIndex ].Rate = rate;
item.FireCommandEvent(RadGrid.CancelCommandName, null);
item.OwnerTableView.DataBind();
}