Link to home
Start Free TrialLog in
Avatar of carter_jl
carter_jl

asked on

web page structure asp.net 1.1

I am trying to create a web page in asp.net 1.1. I want my pages to have a consistent feel. I already have the css for the pages

I am a php programmer and this is how I usually do it.

Click a link (FAQS index.php?faqs=1) it takes you to index.php.


index.php
example:

include  ('top.php'); // top.php is the design for the top of the page

//this is where the content will be displayed
 if(isset($_GET['faqs']))
{
     include('faqs.php');
}

include ('bottom..php'); //bottom.php is the bottom of the page
Avatar of Hamed Zaghaghi
Hamed Zaghaghi
Flag of Iran, Islamic Republic of image

in asp.net you can use UserControls(*.ascx),

you can create and code  usercontrols like pages, and when you finished them, you can make a page(*.aspx), and then drag an drop your ascx where you want in your page
Avatar of carter_jl
carter_jl

ASKER

I was doing that but I got an error:

A page can have only one server-side Form tag.

How can I bypass this problem?
>>I was doing that ...

it means that you create 3 user controls, for example top.ascx, bottom.ascx and faqs.ascx,
and a page for example detail.aspx, and then drag and drop user controls in the page(in design view)??
I followed those steps but I still have the error.
did you drag and drop the user controls in the page from the design view, from solution explorer?
Yes.

This is the error:

A page can have only one server-side Form tag.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: A page can have only one server-side Form tag.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace:


[HttpException (0x80004005): A page can have only one server-side Form tag.]
   System.Web.UI.Page.OnFormRender(HtmlTextWriter writer, String formUniqueID) +311
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +35
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +262
   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.Control.RenderChildren(HtmlTextWriter writer) +72
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +44
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +262
   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() +1918

 
how do you insert a user control to your solution?
did you create a page and then rename it to ascx?
Yes, I think the problem is that I have two runat="server" in the code, because of the user control, and a regular text box.
you don't create the ascx user controls like this,

you should insert a user control to a solution in this way:

right click on your project in solutionb explorer, and then "Add" --> "Add Web User Control"

i do exactly the same thing you are trying to do.  Here is what you are looking for

in html

<asp:placeholder runat=server id=ph1 />

in page load event

dim controller as string = request.querystring("controller")

if controller = "page1" then
 dim c as control = page.loadcontol(request.applicationpath + "/UserControls/Page1.ascx")
 ph1.controls.add(c)
elseif controller = "page2" then
 dim c as control = page.loadcontol(request.applicationpath + "/UserControls/Page2.ascx")
 ph1.controls.add(c)
and so on..
in html
<asp:placeholder runat=server id=ph1 />

in page load event
string controller = Request.QueryString.Get("controller");

                  if(controller == "abc")
                  {
                        Control c = Page.LoadControl(Request.ApplicationPath + "/abcContent.ascx");
                        ph1.Controls.Add(c);
                  }

in abcContent.ascx

<%@ Control Language="C#" EnableViewState="False" %>

<form id="Form1" method="post" runat="server">
      <asp:TextBox id="TextBox1" runat="server"></asp:TextBox></P>
      </form>

I still continue to get the same error.
ASKER CERTIFIED SOLUTION
Avatar of Hamed Zaghaghi
Hamed Zaghaghi
Flag of Iran, Islamic Republic of image

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
true, you have to actually have a user control.
Sorry about the delay in giving you your points. I tested your solution and I appreciate all of your help.
have a good programming day;