I'm having an issue trying to convert one of my RadGrids to Batch edit mode from EditForms. The following is all code that worked natively prior to changing the EditMode.
Here is an example of the problem, starting with the GridTemplateColumn causing problems:
Then, I have the following (with some lines cut out) to extract values from the EditItemTemplate controls (bolded the relevant sections to this problem)
The last line above leads to:
I receive null Object errors for the bolded line above, as the control "rcbUnitNumber" isn't found. Using breakpoints and some testing I can confirm that "editedItem" only contains the controls from the column ItemTemplate rather than EditItemTemplate.
Can anyone see what I'm doing wrong here?
Here is an example of the problem, starting with the GridTemplateColumn causing problems:
<
telerik:GridTemplateColumn
HeaderText
=
"Unit #"
ColumnGroupName
=
"GeneralInformation"
UniqueName
=
"EmpORUnitID"
DataField
=
"EmpORUnitID"
HeaderStyle-Width
=
"100px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblUnitID"
runat
=
"server"
Text=<%#DataBinder.Eval(Container, "DataItem.EmpORUnitID")%>></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadComboBox
runat
=
"server"
ID
=
"rcbUnitNumber"
EnableLoadOnDemand
=
"True"
ShowMoreResultsBox
=
"true"
BorderStyle
=
"None"
Width
=
"90px"
EnableVirtualScrolling
=
"true"
EmptyMessage
=
"Choose a Unit #"
DataTextField
=
"EmpORUnitID"
MarkFirstMatch
=
"True"
Filter
=
"StartsWith"
HighlightTemplatedItems
=
"true"
Height
=
"200px"
Text='<%#DataBinder.Eval(Container, "DataItem.EmpORUnitID")%>'>
<
WebServiceSettings
Method
=
"GetUnitNumberList"
Path
=
"Timesheet.aspx"
/>
</
telerik:RadComboBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Odo Start"
ColumnGroupName
=
"GeneralInformation"
UniqueName
=
"OdoStart"
DataField
=
"OdoStart"
HeaderStyle-Width
=
"100px"
>
<
ItemTemplate
>
<%#DataBinder.Eval(Container, "DataItem.OdoStart")%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"rtbOdoStart"
Width
=
"50px"
Text='<%#DataBinder.Eval(Container, "DataItem.OdoStart")%>'>
</
telerik:RadNumericTextBox
>
<
telerik:RadButton
ID
=
"btnFindOdoStart"
runat
=
"server"
Width
=
"20px"
OnClick
=
"btnFindOdoStart_Click"
Icon-PrimaryIconUrl
=
"~/Images/Icons/gauge.png"
></
telerik:RadButton
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
Then, I have the following (with some lines cut out) to extract values from the EditItemTemplate controls (bolded the relevant sections to this problem)
protected void rgTodaysVehicles_UpdateCommand(object sender, GridCommandEventArgs e)
{
try
{
GridEditableItem editedItem = e.Item as GridEditableItem;
SWG.Timesheet.WebApp.Entities.Timesheet timesheet = Session["CurrentTimesheet"] as SWG.Timesheet.WebApp.Entities.Timesheet;
VehicleMileageSummary vehicleMileageSummary = timesheet.VehicleMileages[editedItem.ItemIndex];
try
{
vehicleMileageSummary = BuildVehicleMileageSummary(editedItem, vehicleMileageSummary);
The last line above leads to:
private VehicleMileageSummary BuildVehicleMileageSummary(GridEditableItem editedItem, VehicleMileageSummary vehicleMileage)
{
List<
String
> errorList = new List<
string
>();
try
{
vehicleMileage.IsDirty = true;
RadComboBox cbxEmpOrUnitID = (RadComboBox)editedItem["EmpORUnitID"].FindControl("rcbUnitNumber");
vehicleMileage.EmpORUnitID = cbxEmpOrUnitID.Text;
I receive null Object errors for the bolded line above, as the control "rcbUnitNumber" isn't found. Using breakpoints and some testing I can confirm that "editedItem" only contains the controls from the column ItemTemplate rather than EditItemTemplate.
Can anyone see what I'm doing wrong here?