Hi,
I have an issue, I want to insert a register in a rad grid. When I enable the property ReadOnly="true" I cannot edit the corresponding column which is right (you must not edit your primary key). However this property disables the same fields when I try to insert a new register which (for me) is wrong (I want to insert my primary key in the front-end). How can I set this property in order to maintain it as "ReadOnly" these fields when I'm editing and besides to maintain enabled my pk fields when I insert new fields.
I want to insert 3 primary keys. I don't want to edit it.
Thanks in advance,
William
I have an issue, I want to insert a register in a rad grid. When I enable the property ReadOnly="true" I cannot edit the corresponding column which is right (you must not edit your primary key). However this property disables the same fields when I try to insert a new register which (for me) is wrong (I want to insert my primary key in the front-end). How can I set this property in order to maintain it as "ReadOnly" these fields when I'm editing and besides to maintain enabled my pk fields when I insert new fields.
I want to insert 3 primary keys. I don't want to edit it.
Thanks in advance,
William
<telerik:RadGrid runat="server" ID="grid" AutoGenerateColumns="false"
AllowPaging="true" OnNeedDataSource="grid_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand"
OnInsertCommand="RadGrid1_InsertCommand" OnDeleteCommand="RadGrid1_DeleteCommand" >
<MasterTableView DataKeyNames="CompanyID,BranchID,SupplierID" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage" EditMode="InPlace">
<Columns>
<telerik:GridBoundColumn DataField="CompanyID" HeaderText="Sociedad"
ForceExtractValue="InEditMode" ConvertEmptyStringToNull="true" ReadOnly="true" />
<telerik:GridBoundColumn DataField="BranchID" HeaderText="Sucursal"
ForceExtractValue="Always" ConvertEmptyStringToNull="true" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="SupplierID" HeaderText="Tipo de identificación"
ForceExtractValue="Always" ConvertEmptyStringToNull="true" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Code" HeaderText="Código SAP" >
</telerik:GridBoundColumn>
<telerik:GridEditCommandColumn ButtonType="ImageButton" />
<telerik:GridButtonColumn ConfirmText="XXXXXXXX" ConfirmDialogType="RadWindow"
ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" />
</Columns>
<EditFormSettings>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
</MasterTableView>
<PagerStyle Mode="NextPrevAndNumeric" />
</telerik:RadGrid>
4 Answers, 1 is accepted
0
Accepted

Princy
Top achievements
Rank 2
answered on 22 Oct 2010, 08:08 AM
Hello William,
You can access the control in edit/insert mode from code behind and set its ReadOnly property accordingly like below.
C#:
Thanks,
Princy.
You can access the control in edit/insert mode from code behind and set its ReadOnly property accordingly like below.
C#:
protected
void
grid_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item.OwnerTableView.IsItemInserted && e.Item
is
GridDataInsertItem)
//item is about to be inserted
{
GridDataInsertItem insertItem=(GridDataInsertItem)e.Item;
TextBox txtid = (TextBox)insertItem[
"CompanyID"
].Controls[0];
txtid.ReadOnly =
false
;
}
if
(!(e.Item
is
GridDataInsertItem) && e.Item.IsInEditMode)
//item is about to be edit
{
GridEditableItem editItem = (GridEditableItem)e.Item;
TextBox txtid = (TextBox)editItem[
"CompanyID"
].Controls[0];
txtid.ReadOnly =
true
;
}
}
Thanks,
Princy.
0

william
Top achievements
Rank 1
answered on 22 Oct 2010, 02:27 PM
Dear Princy,
Thank you very much for your answer. It works!
William
Thank you very much for your answer. It works!
William
0

william
Top achievements
Rank 1
answered on 22 Oct 2010, 08:18 PM
Hi,
I have an additional issue. Inside the same grid I need to manage a checkbox control. I need to enable it both when I want to insert a register and when I want to edit it. I need to disable it when I want to populate the grid. When I'm editing and populating this grid it works. However whether I want to insert a register I get the following compilation error in my code aspx:Specified cast is not valid .
This is the corresponding aspx code:
This is the code behind:
Thanks in advance.
William
I have an additional issue. Inside the same grid I need to manage a checkbox control. I need to enable it both when I want to insert a register and when I want to edit it. I need to disable it when I want to populate the grid. When I'm editing and populating this grid it works. However whether I want to insert a register I get the following compilation error in my code aspx:Specified cast is not valid .
This is the corresponding aspx code:
<telerik:RadGrid runat="server" ID="grid" AutoGenerateColumns="false"
AllowPaging="true" OnNeedDataSource="grid_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand"
OnInsertCommand="RadGrid1_InsertCommand"
OnItemDataBound="RadGrid1_ItemDataBound" Culture="es-CO" >
<MasterTableView DataKeyNames="CenterCostID" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage" EditMode="InPlace">
<Columns>
<telerik:GridBoundColumn DataField="CenterCostID" HeaderText="Id Centro de Costo"
ForceExtractValue="InEditMode" ConvertEmptyStringToNull="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Description" HeaderText="Descripcion"
ForceExtractValue="InEditMode" ConvertEmptyStringToNull="true" >
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Active" DataField="Active" HeaderText="Activo" >
<ItemTemplate>
<asp:CheckBox Checked='<%#Eval("Active") %>' ID="CheckBox1" runat="server" />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn ButtonType="ImageButton" />
</Columns>
</MasterTableView>
<PagerStyle Mode="NextPrevAndNumeric" />
</telerik:RadGrid>
This is the code behind:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
//to be inserted ->it doesn't work
//to be inserted ->it doesn't work
if (e.Item.OwnerTableView.IsItemInserted && e.Item is GridDataInsertItem)
{
GridDataInsertItem insertItem = (GridDataInsertItem)e.Item;
TextBox txtid = (TextBox)insertItem["CenterCostID"].Controls[0];
txtid.ReadOnly = false;
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbx = (CheckBox)item["Active"].FindControl("CheckBox1");
chkbx.Enabled = true;
}
//to be edited-> it works
//to be edited-> it works
if (!(e.Item is GridDataInsertItem) && e.Item.IsInEditMode)
{
GridEditableItem editItem = (GridEditableItem)e.Item;
TextBox txtid = (TextBox)editItem["CenterCostID"].Controls[0];
txtid.ReadOnly = true;
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbx = (CheckBox)item["Active"].FindControl("CheckBox1");
chkbx.Enabled = true;
}
//to be populated-> it works
if (e.Item is GridDataItem && !(!(e.Item is GridDataInsertItem) && e.Item.IsInEditMode) && !((e.Item.OwnerTableView.IsItemInserted && e.Item is GridDataInsertItem)))
{
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbx = (CheckBox)item["Active"].FindControl("CheckBox1");
chkbx.Enabled = false;
}
}
Thanks in advance.
William
0

william
Top achievements
Rank 1
answered on 22 Oct 2010, 08:42 PM
Hi,
I solved it adding the following:
More information here: http://www.telerik.com/community/forums/aspnet/grid/checkbox-in-radgrid-editable-without-clicking-on-edit-button.aspx
The Best!
I solved it adding the following:
protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
if ((e.CommandName == RadGrid.InitInsertCommandName))
{
e.Canceled = true;
//Prepare an IDictionary with the predefined values
System.Collections.Specialized.ListDictionary newValues = new System.Collections.Specialized.ListDictionary();
//set initial checked state for the checkbox on init insert
newValues["Active"] = false;
//Insert the item and rebind
e.Item.OwnerTableView.InsertItem(newValues);
}
}
More information here: http://www.telerik.com/community/forums/aspnet/grid/checkbox-in-radgrid-editable-without-clicking-on-edit-button.aspx
The Best!