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

set telerik grid EditFormSettings item visibility at runtime. I am getting error as "Object reference not set to an instance of an object. "

2 Answers 87 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Sireesha
Top achievements
Rank 1
Sireesha asked on 28 Feb 2014, 07:01 AM
Protected Sub rgCallers_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles rgCallers.ItemCommand
       Dim EditFormItem As GridEditFormItem = TryCast(e.Item, GridEditFormItem)
       EditFormItem.FindControl("txtAddress").Visible = True
 End Sub
001.<EditFormSettings EditFormType="Template">
002.                                               <FormTemplate>
003.                                                   <table id="tblCallerEdit" runat="server" cellpadding="0" cellspacing="0" style="width: 100%;
004.                                                       height: 100%;" border="0">
005.                                                       <tr>
006.                                                           <td valign="middle" style="height: 26px; background-color: #DDE1E6;" align="left"
007.                                                               colspan="2">
008.                                                                 <asp:Label ID="lblSubHeading" runat="server" CssClass="clsFormTemplateHeader"
009.                                                                   Text="Caller Details"></asp:Label>
010.                                                           </td>
011.                                                           <td style="width: 5px; text-align: right; background-color: #DDE1E6; height: 26px;"
012.                                                               align="right">
013.                                                           </td>
014.                                                       </tr>
015.                                                       <tr>
016.                                                           <td valign="top" style="width: 30px; height: 22px;">
017.                                                           </td>
018.                                                           <td valign="top" align="left">
019.                                                               <table style="width: 310px; height: 70px; margin-left: 260px;" class="clsTestTable">
020.                                                                   <tr>
021.                                                                       <td style="text-align: right; width: 150px; height: 18px;">
022.                                                                           <asp:Label ID="lblFirstName" runat="server">First Name</asp:Label>
023.                                                                       </td>
024.                                                                       <td style="width: 200px; text-align: left; height: 18px;">
025.                                                                           <div style="float: left; padding-right: 5px">
026.                                                                               <asp:TextBox ID="txtFirstName" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "FirstName") %>'
027.                                                                                   Rows="2"></asp:TextBox></div>
028.                                                                           <asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName"
029.                                                                               ErrorMessage="First name is required" ValidationGroup="PersonalInfo">*</asp:RequiredFieldValidator>
030.                                                                       </td>
031.                                                                   </tr>
032.                                                                   <tr>
033.                                                                       <td style="text-align: right; height: 18px; width: 150px;">
034.                                                                           <asp:Label ID="lblLastName" runat="server">Last Name</asp:Label>
035.                                                                       </td>
036.                                                                       <td style="height: 18px; width: 200px; text-align: left;">
037.                                                                           <div style="float: left; padding-right: 5px">
038.                                                                               <asp:TextBox ID="txtLastName" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "LastName") %>'
039.                                                                                   Rows="2"></asp:TextBox></div>
040.                                                                           <asp:RequiredFieldValidator ID="rfvLastName" runat="server" ControlToValidate="txtLastName"
041.                                                                               ErrorMessage="Last name is required" ValidationGroup="PersonalInfo">*</asp:RequiredFieldValidator>
042.                                                                       </td>
043.                                                                   </tr>
044.                                                                   <tr>
045.                                                                       <td style="text-align: right; height: 18px; width: 150px;">
046.                                                                           <asp:Label ID="lblCompany" runat="server" Text="Company"></asp:Label>
047.                                                                       </td>
048.                                                                       <td>
049.                                                                           <div style="float: left; padding-right: 5px">
050.                                                                               <asp:TextBox ID="txtCompany" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "Company") %>'
051.                                                                                   Rows="2"></asp:TextBox></div>
052.                                                                           <asp:RequiredFieldValidator ID="rfvCompany" runat="server" ControlToValidate="txtCompany"
053.                                                                               ErrorMessage="Company is required" ValidationGroup="PersonalInfo">*</asp:RequiredFieldValidator>
054.                                                                       </td>
055.                                                                   </tr>
056.                                                                   <tr>
057.                                                                       <td style="text-align: right; height: 18px; width: 150px;">
058.                                                                           <asp:Label ID="lblPhoneNo" runat="server" Text="Tel No"></asp:Label>
059.                                                                       </td>
060.                                                                       <td>
061.                                                                           <div style="float: left; padding-right: 5px">
062.                                                                               <asp:TextBox ID="txtPhoneNo" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "PhoneNo") %>'
063.                                                                                   Rows="2"></asp:TextBox></div>
064.                                                                           <asp:RequiredFieldValidator ID="rfvPhoneNo" runat="server" ControlToValidate="txtPhoneNo"
065.                                                                               ErrorMessage="Tel No is required" ValidationGroup="PersonalInfo">*</asp:RequiredFieldValidator>
066.                                                                       </td>
067.                                                                   </tr>
068.                                                                   <tr>
069.                                                                       <td style="text-align: right; height: 18px; width: 150px;">
070.                                                                           <asp:Label ID="lblEmail" runat="server" Text="Email"></asp:Label>
071.                                                                       </td>
072.                                                                       <td>
073.                                                                           <div style="float: left; padding-right: 5px">
074.                                                                               <asp:TextBox ID="txtEmail" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "Email") %>'
075.                                                                                   Rows="2"></asp:TextBox></div>
076.                                                                           <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtEmail"
077.                                                                               ErrorMessage="Email is required" ValidationGroup="PersonalInfo">*</asp:RequiredFieldValidator>
078.                                                                       </td>
079.                                                                   </tr>
080.                                                                   <tr id="trAddress" runat="server" visible="false">
081.                                                                       <td style="text-align: right; height: 18px; width: 150px;">
082.                                                                           <asp:Label ID="lblAddress" runat="server" Text="Address/Erf" Visible="false"></asp:Label>
083.                                                                       </td>
084.                                                                       <td>
085.                                                                           <div style="float: left; padding-right: 5px">
086.                                                                               <asp:TextBox ID="txtAddress" runat="server" MaxLength="50" Width="145px" Text='<%# Bind("Address")%>'
087.                                                                                   Rows="2" Visible="false"></asp:TextBox></div>
088.                                                                       </td>
089.                                                                   </tr>
090.                                                                   <tr id="trAccountNo" runat="server" visible="false">
091.                                                                        <td style="text-align: right; height: 18px; width: 150px;">
092.                                                                           <asp:Label ID="lblAccountNo" runat="server" Text="Account Number" Visible="false"></asp:Label>
093.                                                                       </td>
094.                                                                       <td>
095.                                                                           <div style="float: left; padding-right: 5px">
096.                                                                               <asp:TextBox ID="txtAccountNo" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "AccountNumber")%>'
097.                                                                                   Rows="2" Visible="false"></asp:TextBox></div>
098.                                                                       </td>
099.                                                                   </tr>
100.                                                                   <tr id="trSuburb" runat="server" visible="false">
101.                                                                         <td style="text-align: right; height: 18px; width: 150px;">
102.                                                                           <asp:Label ID="lblSuburb" runat="server" Text="Suburb" Visible="false"></asp:Label>
103.                                                                       </td>
104.                                                                       <td>
105.                                                                           <div style="float: left; padding-right: 5px">
106.                                                                               <asp:TextBox ID="txtSuburb" runat="server" MaxLength="50" Width="145px" Text='<%# Bind( "Suburb")%>'
107.                                                                                   Rows="2" Visible="false"></asp:TextBox></div>
108.                                                                       </td>
109.                                                                   </tr>
110.                                                                   <tr>
111.                                                                       <td style="width: 150px; height: 18px; text-align: right">
112.                                                                           <asp:Label ID="lblSys" runat="server" Text='<%# GetSystem() %>'></asp:Label>
113.                                                                       </td>
114.                                                                       <td style="width: 200px; height: 18px; text-align: left">
115.                                                                           <div style="float: left; padding-right: 5px">
116.                                                                               <telerik:RadComboBox ID="ddlSys" runat="server" Width="144px" Skin="Default" EnableEmbeddedSkins="true"
117.                                                                                   DataSourceID="SQLDataSource1" DataTextField="SystemName" DataValueField="SystemID"
118.                                                                                   SelectedValue='<%# Eval("SysID") %>'>
119.                                                                               </telerik:RadComboBox>
120.                                                                           </div>
121.                                                                           <asp:RequiredFieldValidator ID="rfvSys" runat="server" ValidationGroup="PersonalInfo"
122.                                                                               InitialValue="- Select a municipality -" ErrorMessage="Please select municipality"
123.                                                                               ControlToValidate="ddlSys" SetFocusOnError="True" Height="1px" Width="1px">*</asp:RequiredFieldValidator>
124.                                                                       </td>
125.                                                                   </tr>
126.                                                                   <tr>
127.                                                                       <td style="width: 150px; height: 18px; text-align: right">
128.                                                                           <asp:Label ID="lblEnabled" runat="server">Enabled</asp:Label>
129.                                                                       </td>
130.                                                                       <td style="width: 200px; height: 18px; text-align: left">
131.                                                                           <div style="float: left; padding-right: 5px">
132.                                                                               <asp:CheckBox ID="chkEnabled" runat="server" Checked='<%# If(IsDBNull(Eval("Enabled")), False, Eval("Enabled"))  %>' /></div>
133.                                                                       </td>
134.                                                                   </tr>
135.                                                               </table>
136.                                                           </td>
137.                                                           <td>
138.                                                                 
139.                                                           </td>
140.                                                       </tr>
141.                                                       <tr>
142.                                                           <td colspan="2" style="height: 40px; background-color: #DDE1E6; text-align: center;">
143.                                                               <div id="Zone1">
144.                                                                   <asp:Button ID="btnUpdate" Text='<%# If(CBool(DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")), "Insert User", "Update User") %>'
145.                                                                       runat="server" CausesValidation="True" CommandName='<%# If(CBool(DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")), "PerformInsert", "Update") %> '
146.                                                                       Width="145px" ValidationGroup="PersonalInfo" /> 
147.                                                                   <asp:Button ID="btnCancel" runat="server" CausesValidation="False" CommandName="Cancel"
148.                                                                       Text="Cancel" Width="145px" /></div>
149.                                                           </td>
150.                                                           <td style="background-color: #DDE1E6;">
151.                                                                 
152.                                                           </td>
153.                                                       </tr>
154.                                                       <tr>
155.                                                           <td>
156.                                                           </td>
157.                                                           <td style="text-align: left">
158.                                                               <asp:ValidationSummary ID="ValidationSummary2" runat="server" ValidationGroup="PersonalInfo"
159.                                                                   Width="250px" DisplayMode="BulletList" />
160.                                                           </td>
161.                                                           <td>
162.                                                           </td>
163.                                                       </tr>
164.                                                   </table>
165.                                               </FormTemplate>
166.                                               <FormCaptionStyle BorderStyle="Solid" />
167.                                               <FormStyle BackColor="#F2F2F2" BorderColor="#BEBEBE" BorderStyle="Solid" BorderWidth="1px" />
168.                                           </EditFormSettings>
I am getting an error as  
Object reference not set to an instance of an object.

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 28 Feb 2014, 08:54 AM
Hi Sireesha,

I guess you want to access a control in the EditForm template. Please make sure you have set the visibility of the <tr> true and set visible as false only for the controls. Check the below code snippet.

ASPX:
<tr id="trAddress" runat="server" visible="true">
    <td>
      <asp:Label ID="lblAddress" runat="server" Text="Address/Erf" Visible="false"></asp:Label>
    </td>
    <td>
      <asp:TextBox ID="txtAddress" runat="server" Text='<%# Bind("Address")%>' Visible="false"></asp:TextBox></div>
    </td>
</tr>

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        GridEditableItem edit = (GridEditableItem)e.Item;
        TextBox txt = (TextBox)edit.FindControl("txtAddress");
        txt.Visible = true;
        Label lbl = (Label)edit.FindControl("lblAddress");
        lbl.Visible = true;
    }
}

Thanks,
Princy
0
Sireesha
Top achievements
Rank 1
answered on 28 Feb 2014, 11:05 AM
Hi Princy,

Its working perfectly fine.
Thank you so much.

Here is my VB.Net code.
Protected Sub rgCallers_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgCallers.ItemDataBound
 
       
       If (boolViewCallerAdditionalFields = True) Then
           If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then
 
               Dim edit As GridEditableItem = TryCast(e.Item, GridEditableItem)
               Dim txtAddress As TextBox = TryCast(edit.FindControl("txtAddress"), TextBox)
               txtAddress.Visible = True
               Dim lblAddress As Label = DirectCast(edit.FindControl("lblAddress"), Label)
               lblAddress.Visible = True
 
              
       End If
   End Sub


Regards,
Sireesha.
Tags
Grid
Asked by
Sireesha
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Sireesha
Top achievements
Rank 1
Share this question
or