Getting an error when I try to get control of radgrid edit template text box in code behind. I want to make edit template textbox "visible = false" when insert click(Add new record). Anybody can help me?
protected void ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.InitInsertCommandName)
{
(this.Page.FindControl("txtOpcode") as RadTextBox).Visible = false;
//(RadGrid1.MasterTableView.FindControl("txtOpcode") as RadTextBox).Visible = false;
}
Error: Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.
7 Answers, 1 is accepted
You can find the TextBox in ItemDataBound Event.Try the following code snippet.
C#:
protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) { if (e.Item is GridEditFormInsertItem && e.Item.OwnerTableView.IsItemInserted) { GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item; TextBox txt = (TextBox)item.FindControl("TextBox1"); txt.Visible = false; } }Please go through the following documentation for more information .
http://www.telerik.com/help/aspnet-ajax/grddistinguisheditinsertmodeonitemcreateditemdatabound.html
Thanks,
Princy.
Its working now
I have some other issues related to this post. I posted it in my other thread. We can communicate there. Please answer for that thread.
Thank you again
Ben
I'm receiving the exact same error that Ben received (Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.) but my situation is slightly different.
I have a custom edit form, and within the edit form I have RadAsyncUpload and RadBinaryImage conrols. Where I'm receiving the error is when I try to upload a new image. When I debug, the line of code that's creating the error is where I'm trying to find the RadBinaryImage control in my edit form. See code below:
RadGrid:
<telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" AllowPaging="True" AllowFilteringByColumn="true" CssClass="RadGrid" AllowSorting="True" AutoGenerateColumns="False" ShowStatusBar="true" OnNeedDataSource="RadGrid1_NeedDataSource" Skin="Office2007"> <MasterTableView Width="100%" DataKeyNames="AssetID" EditMode="PopUp"> <Columns> <telerik:GridEditCommandColumn UniqueName="EditCommandColumn"> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn UniqueName="AssetID" HeaderText="Asset ID" DataField="AssetID" ShowFilterIcon="true"> <HeaderStyle Width="60px"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="AssetCode" HeaderText="Asset Code" DataField="AssetCode" ShowFilterIcon="true"> <HeaderStyle Width="80px"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="AssetName" HeaderText="AssetName" DataField="AssetName" ShowFilterIcon="true" FilterControlWidth="200"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="AssetDescription" HeaderText="Asset Description" DataField="AssetDescription" ShowFilterIcon="true" FilterControlWidth="250"> <HeaderStyle Width="350px"></HeaderStyle> </telerik:GridBoundColumn> </Columns> <EditFormSettings CaptionFormatString="Editing Asset: {0}" CaptionDataField="AssetName" PopUpSettings-Modal="true" EditFormType="Template"> <PopUpSettings Width="850" /> <FormTemplate> <table width="800"> <tr> <td> <table cellspacing="10"> <tr> <td> <asp:Label ID="lblAssetID" runat="server"><b>Asset ID:</b></asp:Label><br /> <asp:TextBox ID="txtAssetID" runat="server" Enabled="false" BackColor="AntiqueWhite" CssClass="txt" Text='<%# Eval("AssetID") %>' /> </td> </tr> <tr> <td> <asp:Label ID="lblAssetCode" runat="server"><b>Asset Code:</b></asp:Label><br /> <asp:TextBox ID="txtAssetCode" runat="server" Enabled="false" BackColor="AntiqueWhite" CssClass="txt" Text='<%# Eval("AssetCode") %>' /> </td> </tr> <tr> <td> <asp:Label ID="lblAssetName" runat="server"><b>Asset Name:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:TextBox ID="txtAssetName" runat="server" CssClass="txt" Text='<%# Eval("AssetName") %>' /> </td> </tr> <tr> <td> <asp:Label ID="lblAssetDescription" runat="server"><b>Asset Description:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:TextBox ID="txtAssetDescription" runat="server" TextMode="MultiLine" Rows="2" CssClass="txt" Text='<%# Eval("AssetDescription") %>' /> </td> </tr> <tr> <td> <asp:Label ID="lblAssetType" runat="server"><b>Asset Type:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:DropDownList ID="ddlAssetType" runat="server" CssClass="txt" AppendDataBoundItems="true" DataSource="<%# GetAssetTypes() %>" DataValueField="AssetTypeID" DataTextField="AssetTypeName" SelectedValue='<%# Eval("AssetTypeID") %>'> <asp:ListItem Value="0" Text="--- Select an Asset Type ---" /> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblPhysicalAssetType" runat="server"><b>Physical Asset Type:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:DropDownList ID="ddlPhysicalAssetType" runat="server" CssClass="txt" AppendDataBoundItems="true" DataSource="<%# GetPhysicalAssetTypes() %>" DataValueField="PhysicalAssetTypeID" DataTextField="PhysicalAssetTypeName" SelectedValue='<%# (Eval("PhysicalAssetTypeID") == DBNull.Value) ? "0" : Eval("PhysicalAssetTypeID") %>'> <asp:ListItem Value="0" Text="--- Select a Physical Asset Type ---" /> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblNextStep" runat="server"><b>Next Step:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:DropDownList ID="ddlNextStep" runat="server" CssClass="txt" AppendDataBoundItems="true" DataSource="<%# GetNextSteps() %>" DataValueField="NextStepID" DataTextField="NextStepName" SelectedValue='<%# (Eval("NextStepID") == DBNull.Value) ? "0" : Eval("NextStepID") %>'> <asp:ListItem Value="0" Text="--- Select The Next Step ---" /> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblCategory" runat="server"><b>Category:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:RadioButtonList ID="rblCategory" runat="server" RepeatColumns="3" RepeatDirection="Vertical" DataSource="<%# GetCategories() %>" DataValueField="CategoryID" DataTextField="CategoryName" SelectedValue='<%# (Eval("CategoryID") == DBNull.Value) ? "0" : Eval("CategoryID") %>'> </asp:RadioButtonList> </td> </tr> <tr> <td> <asp:Label ID="lblTatic" runat="server"><b>Tatic:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:RadioButtonList ID="rblTatic" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" DataSource="<%# GetTatics() %>" DataValueField="TaticID" DataTextField="TaticName" SelectedIndex='<%# CheckIfValueExists(Eval("TaticID")) %>'> </asp:RadioButtonList> </td> </tr> <tr> <td> <asp:Label ID="lblFunctionalPreviewType" runat="server"><b>Functional Preview Type:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:RadioButtonList ID="rblFunctionalPreviewType" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" DataSource="<%# GetFunctionPreviewTypes() %>" DataValueField="FunctionPreviewTypeID" DataTextField="FunctionPreviewTypeName" SelectedValue='<%# (Eval("FunctionPreviewTypeID") == DBNull.Value) ? "0" : Eval("FunctionPreviewTypeID") %>'> </asp:RadioButtonList> </td> </tr> <tr> <td> <asp:Label ID="lblProgramType" runat="server"><b>Program Type:<span class="ErrorMessage"> *</span></b></asp:Label><br /> <asp:CheckBoxList ID="cblProgramType" runat="server" RepeatColumns="3" RepeatDirection="Vertical" DataSource="<%# GetProgramTypes() %>" DataValueField="ProgramTypeID" DataTextField="ProgramTypeName"> </asp:CheckBoxList> </td> </tr> <tr> <td> <br /> <asp:Button ID="btnUpdate" Text="Update" runat="server" CssClass="workflowbutton2" CommandName="Update"></asp:Button> <asp:Button ID="btnCancel" Text="Cancel" runat="server" CssClass="workflowbutton2" CausesValidation="False" CommandName="Cancel"></asp:Button> </td> </tr> </table> </td> <td valign="top"> <table> <tr> <td> </td> </tr> <tr> <td> <%--<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("LargePreviewImage") %>' />--%> <telerik:RadBinaryImage runat="server" ResizeMode="None" ID="Thumbnail" ImageUrl='<%# Eval("LargePreviewImage") %>' AlternateText="Thumbnail" CssClass="binary-image" /><br /> <br /> <span class="invalid"></span> <telerik:RadAsyncUpload runat="server" ID="AsyncUpload1" MaxFileInputsCount="1" OnClientFileUploaded="fileUploaded" OnFileUploaded="AsyncUpload1_FileUploaded" AllowedFileExtensions="jpeg,jpg,gif,png,bmp" OnClientValidationFailed="validationFailed"> <Localization Select="Choose New Image" /> </telerik:RadAsyncUpload> </td> </tr> </table> </td> </tr> </table> </FormTemplate> </EditFormSettings> </MasterTableView> <ClientSettings> <ClientEvents OnRowDblClick="RowDblClick" /> </ClientSettings> </telerik:RadGrid>File Upload Method (bold = where error is thrown):
protected void AsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e) { //Thumbnail.Width = Unit.Pixel(200); //Thumbnail.Height = Unit.Pixel(150); using (Stream stream = e.File.InputStream) { byte[] imageData = new byte[stream.Length]; stream.Read(imageData, 0, (int)stream.Length); GridEditFormInsertItem RadBinaryImage thumb = (RadBinaryImage)RadGrid1.MasterTableView.FindControl("Thumbnail"); thumb.DataValue = imageData; } }My RadGrid is contained in a Master Page. How can I get at my "Thumbnail" control?
Thanks,
Mark
You can try the following code snippet to access the RadBinaryImage in edit form.
C#:
protected void AsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e) { . . . . . . RadAsyncUpload upload = (RadAsyncUpload)sender; GridEditFormItem editItem = (GridEditFormItem)upload.NamingContainer; RadBinaryImage thumb = (RadBinaryImage)editItem.FindControl("Thumbnail"); . . . . . . }Thanks,
Princy.
Mark
I'm using Telerik Grid and binded an XML through dataset. I've a autyo generate edit coulmn.
When I press edit, I get a text box with exisitng value and update, cancel button. After typing new value whren i press am not getting the new value in the grid. Can any one help on this. I'm using updatecommand event,but no use so far. Here is my code
Hashtable newValues = new Hashtable();
((GridEditableItem)e.Item).ExtractValues(newValues);
GridEditableItem editItem = (GridEditableItem)e.Item;
GridEditableItem editedItem = e.Item as GridEditableItem;
GridEditManager editMan = editedItem.EditManager;
var obj = editItem.GetDataKeyValue("ConnectionString");
//TextBox txt = e.Item.FindControl("txtValue") as TextBox;
//if (txt != null)
//{
// string s = txt.Text;
//}
ds.Tables["add"].Rows[editItem.DataSetIndex][1] = "XXXXX";
//radDisplay.DataSource = ds.Tables["add"];
radDisplay.Rebind();
StringWriter sw = new StringWriter();
ds.WriteXml(sw);
Session["decryptesXMLString"] = sw.ToString();
I have tried the same and that worked as expected. One suggestion is to try the following approach to achieve the same.
C#:
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e) { if ((e.Item is GridEditFormItem) && (e.Item.IsInEditMode))//editmode=EditForm/InPlace { GridEditFormItem edititem = (GridEditFormItem)e.Item; TextBox txtbx = (TextBox)edititem.FindControl("txtValue"); string City= txtbx.Text; } }Thanks,
Shinu.