I have a RadGrid setup like this
<div id="Grid"> <telerik:RadGrid RenderMode="Lightweight" runat="server" ID="RadGrid1" AutoGenerateColumns="false" AllowPaging="true" OnNeedDataSource="UserGrid_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemCreated="RadGrid1_ItemCreated" OnDeleteCommand="RadGrid1_DeleteCommand" OnInsertCommand="RadGrid1_InsertCommand"> <MasterTableView DataKeyNames="UserID" CommandItemDisplay="Top" EditMode="EditForms"> <Columns> <telerik:GridEditCommandColumn /> <telerik:GridBoundColumn DataField="UserID" HeaderText="User ID" ReadOnly="true" ForceExtractValue="Always" ConvertEmptyStringToNull="true" /> <telerik:GridCheckBoxColumn DataField="Active" HeaderText="Active" SortExpression="Active" UniqueName="chkActive"></telerik:GridCheckBoxColumn> <telerik:GridTemplateColumn HeaderText="Role"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, "Role")%> </ItemTemplate> <EditItemTemplate> <asp:DropDownList runat="server" ID="ddlRoles"> <asp:ListItem Text ="Admin" Value ="Administrator"></asp:ListItem> <asp:ListItem Text ="User" Value ="User"></asp:ListItem> </asp:DropDownList> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="FirstName" HeaderText="First Name" UniqueName="FirstName" /> <telerik:GridBoundColumn DataField="LastName" HeaderText="Last Name" UniqueName ="LastName"/> <telerik:GridBoundColumn DataField="UserName" HeaderText="User Name" UniqueName="UserName" /> <telerik:GridBoundColumn DataField="EmailAddress" HeaderText="Email Address" UniqueName="Email" /> <telerik:GridButtonColumn ConfirmText="Delete this User?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="FontIconButton" CommandName="Delete" /> </Columns> <EditFormSettings InsertCaption="Add new item" CaptionFormatString="Edit User: {0}" CaptionDataField="FirstName"> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> </MasterTableView> <PagerStyle Mode="NextPrevAndNumeric" /> </telerik:RadGrid> </div>
I want to udpade or add new records using C# code behind. However I cannot get access to any of the controls. When thew code attemps to read the value of the value of the control, in this case a textbox, I get an error message stating {"Object reference not set to an instance of an object."} here is the code
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); string strUserID = editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["UserID"].ToString(); int intUserId = Convert.ToUInt16(strUserID); using (ExpungeEntities db = new ExpungeEntities()) { var Results = db.USERS_T_DATA.SingleOrDefault(i => i.UserID == intUserId); if (Results == null) { RadGrid1.Controls.Add(new LiteralControl("Unable to locate that user for updating")); e.Canceled = true; return; } Results.FirstName = (userControl.FindControl("FirstName") as TextBox).Text; } }Can you please tell me what the problem is?