This is a migrated thread and some comments may be shown as answers.

Edit and Insert Template in RadGrid

3 Answers 618 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Ben
Top achievements
Rank 1
Ben asked on 30 Oct 2010, 02:52 AM
Hi Guys
I have created a radgrid with sqldatasource. Enabled atomatic delete, update and insert. I want to create seperate edit and insert template. Requirement is : first three coumns should not be edited. But it should be able to insert new record. When I changed readonly = true I am not able to insert new values. How is it possible. Anybody can help.
Thanks
Ben

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 01 Nov 2010, 07:17 AM
Hello Ben,

One suggestion would be accessing the control in ItemCreated/ItemDataBound event and setting the Enabled property accordingly. The following documentation will help you in distinguishing whether the grid in insertmode or editmode.
Distinguish edit/insert mode on ItemCreated/ItemDataBound


In the case of, you are using TemplateColumns, then you can set the ReadOnly property of controls directly from aspx as shown below:

ASPX:
<MasterTableView TableLayout="Fixed" EditMode="EditForms" CommandItemDisplay="Top">
     <Columns>
        <telerik:GridTemplateColumn DataField="LastName">
              <ItemTemplate>
                 <asp:Label ID="Label1" runat="server" Text='<%#Eval("LastName") %>'></asp:Label>
               </ItemTemplate>
         <EditItemTemplate>
                 <asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("LastName") %>' ReadOnly='<%# Convert.ToBoolean((Container is GridEditFormInsertItem) ? "False" : "True" )%>'></asp:TextBox>
          </EditItemTemplate>
        </telerik:GridTemplateColumn>
      </Columns>
</MasterTableView>


Thanks,
Princy.
0
Pierre
Top achievements
Rank 1
answered on 04 Aug 2011, 10:09 PM
When I used your code I got this error:

Compiler Error Message: BC30108: 'GridEditFormInsertItem' is a type and cannot be used as an expression
0
Jayesh Goyani
Top achievements
Rank 2
answered on 05 Aug 2011, 06:31 AM
Hello Pierre ,

Method 1 : to set column read only in Edit mode
<telerik:GridTemplateColumn UniqueName="IDTemp">
                      <ItemTemplate>
                          <%# Eval("ID") %>
                      </ItemTemplate>
                      <EditItemTemplate>
                       Id FromTemplete Column :   <asp:TextBox ID="TextBox1" runat="server" ReadOnly='<%# Convert.ToBoolean((Container is GridEditFormInsertItem) ? Convert.ToBoolean("False") : Convert.ToBoolean("True") )%>'
                           Text='<%# Eval("ID") %>'></asp:TextBox>
                      </EditItemTemplate>
                  </telerik:GridTemplateColumn>

Method 2 : to set column read only in Edit mode
<telerik:GridBoundColumn UniqueName="ID" HeaderText="ID" DataField="ID">
                 </telerik:GridBoundColumn>
if (e.Item is GridEditFormItem && e.Item.IsInEditMode && !e.Item.OwnerTableView.IsItemInserted)
       //if the item is about to edit
       {
           GridEditFormItem insertItem = (GridEditFormItem)e.Item;
           TextBox txtId = insertItem["ID"].Controls[0] as TextBox;
           txtId.ReadOnly = true;
       }
       if (e.Item is GridEditFormInsertItem && e.Item.OwnerTableView.IsItemInserted)
       //if the item is about to insert
       {
           GridEditFormInsertItem insertItem = (GridEditFormInsertItem)e.Item;
           TextBox txtId = insertItem["ID"].Controls[0] as TextBox;
           txtId.ReadOnly = true;
       }

let me know if any concern.

Thanks,
Jayesh Goyani
Tags
Grid
Asked by
Ben
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Pierre
Top achievements
Rank 1
Jayesh Goyani
Top achievements
Rank 2
Share this question
or