grd.RenderControl(htmlWriter)
line is executed, an error is being thrown stating that the GridLinkButtons must be placed within a form tag. My goal is to extract the HTML markup of the header columns and grid data items only - if this approach won't work, then I will probably have to look into a technique that will iterate each row of the grid and manually write the HTML (I'd like to avoid this if at all possible). Here is the code that I have at this point:
public static string ConvertRadGridToHTML(ref Telerik.Web.UI.RadGrid grd) { var stringwriter = new StringWriter(); var htmlWriter = new HtmlTextWriter(stringwriter); string result; try { htmlWriter.RenderBeginTag(HtmlTextWriterTag.Html); htmlWriter.RenderBeginTag(HtmlTextWriterTag.Body); grd.RenderControl(htmlWriter); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); htmlWriter.Flush(); result = htmlWriter.ToString(); } catch { result = String.Empty; } finally { htmlWriter.Close(); stringwriter.Close(); } return result; }
<telerik:GridTemplateColumn DataField="Comments" AllowFiltering="false" FilterControlAltText="Filter Comments column" HeaderText="Comments" SortExpression="Comments" UniqueName="Comments">
<EditItemTemplate>
<asp:TextBox ID="txtComments" runat="server" Text='<%# Bind("Comments")%>' TextMode="MultiLine"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvComments" ControlToValidate="txtComments" Display="Dynamic" runat="server" ErrorMessage="Please enter a reason for changing this budget item."></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="CommentsLabel" runat="server" Text='<%# Eval("Comments") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
If System.Web.HttpContext.Current.Session("state") IsNot Nothing Then If System.Web.HttpContext.Current.Session("state").ToString = "SaveAsDraft" Then If TypeOf e.Item Is GridDataItem Then Dim item As GridDataItem = TryCast(e.Item, GridDataItem) ViewState("EmailIdValue") = item("id").Text End If If TypeOf e.Item Is GridEditFormItem And e.Item.IsInEditMode Then If e.Item.OwnerTableView.IsItemInserted Then Dim record As New DataTable If ViewState("EmailIdValue") <> "" Then record = GetDataTable("select * from t_EmailFiling where id='" & ViewState("EmailIdValue") & "'") End If If record.Rows.Count > 0 Then Dim insertItem As GridEditFormInsertItem = DirectCast(e.Item, GridEditFormInsertItem) CType(insertItem.FindControl("Recipient"), RadTextBox).Text = record.Rows(0)("Recipient").ToString() CType(insertItem.FindControl("RecipientCC"), RadTextBox).Text = record.Rows(0)("RecipientCC").ToString() CType(insertItem.FindControl("RecipientBCC"), RadTextBox).Text = record.Rows(0)("RecipientBCC").ToString() CType(insertItem.FindControl("Subject"), RadTextBox).Text = record.Rows(0)("Subject").ToString() CType(insertItem.FindControl("Message"), RadEditor).Content = record.Rows(0)("Message").ToString() End If End If End If End If End IfContentFilters="RemoveScripts,FixUlBoldItalic,IECleanAnchors,MozEmStrong,ConvertFontToSpan,ConvertToXhtml,IndentHTMLContent,ConvertCharactersToEntities,FixEnclosingP"
Would anyone be able to offer some advice on how this problem can be resolved?
