Link to home
Start Free TrialLog in
Avatar of sdc248
sdc248Flag for United States of America

asked on

'DataGridLinkButton' must be placed inside a form tag with runat=server

Hi experts:

I have a web page that queries database according to the user's input and bind the resulting data set to a DataGrid. It has been working fine until today after I changed the DataGrid property to AllowSorting=true and added some code to cache the resulting data set and to handle DataGridSortCommandEvent. The error message is as below. Can anyone point me to probable causes?  I have the DataGrid create columns automatically at runtime and there's no link button in the DataGrid. Thanks.

[HttpException (0x80004005): Control '<myTable>__ctl1__ctl0' of type 'DataGridLinkButton' must be placed inside a form tag with runat=server.]
   System.Web.UI.Page.VerifyRenderingInServerForm(Control control) +152
   System.Web.UI.WebControls.LinkButton.AddAttributesToRender(HtmlTextWriter writer) +38
   System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +17
   System.Web.UI.WebControls.DataGridLinkButton.Render(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
   System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer) +55
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +7
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer) +99
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +7
   System.Web.UI.WebControls.BaseDataList.Render(HtmlTextWriter writer) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
   System.Web.UI.Control.Render(HtmlTextWriter writer) +7
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Page.ProcessRequestMain() +1926
ASKER CERTIFIED SOLUTION
Avatar of naveenkohli
naveenkohli

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of sdc248

ASKER

Oh, the <asp:datagrid...> control IS out side of the <form></form> tags. I moved it in and it's working now. But why? It doesn't seem to matter until I enable the "AllowSorting" functionality?
Avatar of naveenkohli
naveenkohli

As long as no post back action related to FORM was happening your page did not complain. But the moment you added the event for link buttons, their action type is "submit" which requires FORM tag on the page.
Avatar of sdc248

ASKER

Got you. Thanks a lot.