Hi,
I am using Rad-grid hierarchical. when i am trying to rebind the grid after update or insert. i am getting "FixedId" is neither a DataColumn nor a data Relation" Here i added my design and code behind please let me know where i am going wrong.
I am using Rad-grid hierarchical. when i am trying to rebind the grid after update or insert. i am getting "FixedId" is neither a DataColumn nor a data Relation" Here i added my design and code behind please let me know where i am going wrong.
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
Skin
=
"Black"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
OnItemCreated
=
"RadGrid1_ItemCreated"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"False"
OnItemCommand
=
"RadGrid1_ItemCommand"
AutoGenerateEditColumn
=
"false"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnInsertCommand
=
"RadGrid1_InsertCommand"
OnDataBound
=
"RadGrid1_DataBound"
OnPreRender
=
"RadGrid1_PreRender"
>
<
MasterTableView
DataKeyNames
=
"TempAccountsId"
ShowFooter
=
"true"
TableLayout
=
"Fixed"
AllowMultiColumnSorting
=
"True"
EditMode
=
"InPlace"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"FixedId"
CommandItemDisplay
=
"Top"
TableLayout
=
"Fixed"
Name
=
"Fixed"
ShowFooter
=
"true"
EditMode
=
"InPlace"
AllowAutomaticUpdates
=
"false"
>
<
Columns
>
<
telerik:GridTemplateColumn
Visible
=
"false"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblFixedId"
runat
=
"server"
Text='<%#Eval("FixedId") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
HeaderText
=
"Edit"
UniqueName
=
"Edit"
ItemStyle-Width
=
"25px"
HeaderStyle-HorizontalAlign
=
"Center"
EditImageUrl
=
"../Images/edit.gif"
ItemStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridEditCommandColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Delete"
UniqueName
=
"Delete"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-Width
=
"40px"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
asp:ImageButton
runat
=
"server"
ID
=
"imgdelete"
OnClientClick
=
"return confirm('Are you sure that you want to Delete?');"
ImageUrl
=
"../Images/delete.gif"
CommandName
=
"Delete"
CommandArgument
=
""
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Jan"
HeaderText
=
"Jan"
HeaderStyle-HorizontalAlign
=
"Center"
FooterStyle-HorizontalAlign
=
"Right"
ItemStyle-HorizontalAlign
=
"Right"
ItemStyle-Width
=
"70px"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblJan"
runat
=
"server"
Text='<%# string.Format("{0:n}", Convert.ToDecimal(Eval("Jan"))) %>'></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
ID
=
"txtJanEdit"
Width
=
"70px"
runat
=
"server"
MaxLength
=
"11"
Text='<%# string.Format("{0:n}", Convert.ToDecimal(Eval("Jan"))) %>' CssClass="AlgRgh"
onkeypress="javascript:return Allownumbersonly(event);" BorderWidth="1px"></
asp:TextBox
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
asp:TextBox
ID
=
"txtJanInsert"
runat
=
"server"
Width
=
"70px"
MaxLength
=
"11"
CssClass
=
"AlgRgh"
onkeypress
=
"javascript:return Allownumbersonly(event);"
BorderWidth
=
"1px"
></
asp:TextBox
>
</
InsertItemTemplate
>
<
FooterTemplate
>
<
asp:Label
ID
=
"lblJanFooter"
runat
=
"server"
></
asp:Label
>
</
FooterTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridTemplateColumn
HeaderText
=
"AccountId"
UniqueName
=
"TempAccountsId"
Visible
=
"false"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblTempAccountsId"
runat
=
"server"
Text='<%#Eval("TempAccountsId") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Account Number"
UniqueName
=
"AccountNumber"
ItemStyle-Width
=
"120px"
HeaderStyle-Width
=
"120px"
HeaderStyle-HorizontalAlign
=
"left"
ItemStyle-HorizontalAlign
=
"left"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblAccountNumber"
runat
=
"server"
Text='<%#Eval("AccountNumber") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Account Name"
UniqueName
=
"AccountName"
ItemStyle-Width
=
"140px"
HeaderStyle-Width
=
"140px"
HeaderStyle-HorizontalAlign
=
"left"
ItemStyle-HorizontalAlign
=
"left"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblAccountName"
runat
=
"server"
Text='<%#Eval("AccountName") %>'></
asp:Label
>
</
ItemTemplate
>
<
FooterTemplate
>
<
asp:Label
ID
=
"lbltotalFooter"
runat
=
"server"
Text
=
"Total:"
></
asp:Label
>
</
FooterTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderStyle-Width
=
"60"
UniqueName
=
"Jan"
HeaderText
=
""
ItemStyle-HorizontalAlign
=
"Right"
HeaderStyle-HorizontalAlign
=
"Right"
FooterStyle-HorizontalAlign
=
"Right"
Aggregate
=
"Sum"
DataField
=
"Jan"
FooterAggregateFormatString
=
"{0:n}"
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowKeyboardNavigation
=
"true"
EnableRowHoverStyle
=
"true"
>
</
ClientSettings
>
</
telerik:RadGrid
>
protected
void
RadGrid1_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
if
(!e.IsFromDetailTable)
{
//DGeneral gen = new DGeneral();
//RadGrid1.DataSource = gen.GetAccountDetailsbyTabName("Fixed");
Dfixed fix =
new
Dfixed();
RadGrid1.DataSource = fix.GetFixedAccountsDetails(Convert.ToInt32(Session[
"Propertyid"
].ToString()), Convert.ToInt32(Session[
"BudgetYear"
].ToString()));
}
}
protected
void
RadGrid1_DetailTableDataBind(
object
source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
{
Dfixed fix =
new
Dfixed();
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"Fixed"
:
{
int
AccountID = Convert.ToInt32(dataItem.GetDataKeyValue(
"TempAccountsId"
).ToString());
e.DetailTableView.DataSource = fix.GetFixedByAccountId(AccountID, Convert.ToInt32(Session[
"BudgetYear"
].ToString()), Convert.ToInt32(Session[
"Propertyid"
].ToString()));
break
;
}
case
"OrderDetails"
:
{
//string OrderID = dataItem.GetDataKeyValue("OrderID").ToString();
//e.DetailTableView.DataSource = GetDataTable("SELECT * FROM [Order Details] WHERE OrderID = " + OrderID);
break
;
}
}
}
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
string
exepUpdate =
""
;
try
{
if
(e.CommandName.Equals(RadGrid.UpdateCommandName))
{
if
(e.Item.OwnerTableView.Name ==
"Fixed"
)
{
bool
ResultSuccess =
false
;
Dfixed fix =
new
Dfixed();
GridEditableItem item = e.Item
as
GridEditableItem;
Label lblFixedId = (Label)item.FindControl(
"lblFixedId"
);
int
GenId = Convert.ToInt32(lblFixedId.Text.Trim().ToString());
TextBox txtDescriptionEdit = (TextBox)item.FindControl(
"txtDescriptionEdit"
);
TextBox txtJanEdit = (TextBox)item.FindControl(
"txtJanEdit"
);
if
(txtJanEdit.Text.Trim().ToString() !=
string
.Empty)
{
Jan = Convert.ToDouble(txtJanEdit.Text.Trim().ToString());
}
total = Jan + Feb + Mar + Apr + May + Jun + July + Aug + Sep + Oct + Nov + Dec;
long
? Retablesqfeet = fix.GetPropertyRentalsqfeet(Convert.ToInt32(Session[
"Propertyid"
].ToString()));
double
? genpersqft = total / Retablesqfeet;
ResultSuccess = fix.EditFixedDetails(GenId, Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec, total, genpersqft, txtDescriptionEdit.Text.Trim().ToString());
if
(ResultSuccess)
{
RadGrid1.Rebind();
}
else
{
DisplayMessage(
"Please Verify the values"
);
e.Canceled =
true
;
}
}
}
}
catch
(Exception)
{
exepUpdate =
"Please Verify the values you have changed in editable fields"
;
}
finally
{
if
(exepUpdate !=
""
)
{
e.Canceled =
true
;
DisplayMessage(
"Fixed Record cannot be Updated. Reason: "
+ exepUpdate.ToString());
}
}
}
protected
void
RadGrid1_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
if
(!e.IsFromDetailTable)
{
//DGeneral gen = new DGeneral();
//RadGrid1.DataSource = gen.GetAccountDetailsbyTabName("Fixed");
Dfixed fix =
new
Dfixed();
RadGrid1.DataSource = fix.GetFixedAccountsDetails(Convert.ToInt32(Session[
"Propertyid"
].ToString()), Convert.ToInt32(Session[
"BudgetYear"
].ToString()));
}
}
protected
void
RadGrid1_DetailTableDataBind(
object
source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
{
Dfixed fix =
new
Dfixed();
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"Fixed"
:
{
int
AccountID = Convert.ToInt32(dataItem.GetDataKeyValue(
"TempAccountsId"
).ToString());
e.DetailTableView.DataSource = fix.GetFixedByAccountId(AccountID, Convert.ToInt32(Session[
"BudgetYear"
].ToString()), Convert.ToInt32(Session[
"Propertyid"
].ToString()));
break
;
}
case
"OrderDetails"
:
{
//string OrderID = dataItem.GetDataKeyValue("OrderID").ToString();
//e.DetailTableView.DataSource = GetDataTable("SELECT * FROM [Order Details] WHERE OrderID = " + OrderID);
break
;
}
}
}
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
string
exepUpdate =
""
;
try
{
if
(e.CommandName.Equals(RadGrid.UpdateCommandName))
{
if
(e.Item.OwnerTableView.Name ==
"Fixed"
)
{
bool
ResultSuccess =
false
;
Dfixed fix =
new
Dfixed();
GridEditableItem item = e.Item
as
GridEditableItem;
Label lblFixedId = (Label)item.FindControl(
"lblFixedId"
);
int
GenId = Convert.ToInt32(lblFixedId.Text.Trim().ToString());
TextBox txtDescriptionEdit = (TextBox)item.FindControl(
"txtDescriptionEdit"
);
TextBox txtJanEdit = (TextBox)item.FindControl(
"txtJanEdit"
);
if
(txtJanEdit.Text.Trim().ToString() !=
string
.Empty)
{
Jan = Convert.ToDouble(txtJanEdit.Text.Trim().ToString());
}
total = Jan + Feb + Mar + Apr + May + Jun + July + Aug + Sep + Oct + Nov + Dec;
long
? Retablesqfeet = fix.GetPropertyRentalsqfeet(Convert.ToInt32(Session[
"Propertyid"
].ToString()));
double
? genpersqft = total / Retablesqfeet;
ResultSuccess = fix.EditFixedDetails(GenId, Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec, total, genpersqft, txtDescriptionEdit.Text.Trim().ToString());
if
(ResultSuccess)
{
RadGrid1.Rebind();
}
else
{
DisplayMessage(
"Please Verify the values"
);
e.Canceled =
true
;
}
}
}
}
catch
(Exception)
{
exepUpdate =
"Please Verify the values you have changed in editable fields"
;
}
finally
{
if
(exepUpdate !=
""
)
{
e.Canceled =
true
;
DisplayMessage(
"Fixed Record cannot be Updated. Reason: "
+ exepUpdate.ToString());
}
}
}