用C#動態產生HTML的問題
1. don't use response.write, since the output normally goes to the top of the file, use Literal, for example:
<head><asp:Literal id="lit" runat="server" /></head>
<form runat="server
in code behind,
protected Literal lit;
void Page_Load(Object sender, EventArgs e)
{
lit.Text = "<title>hello world</title>";
}
2. use server controls
<form runat="server" id="form1">
<asp:Button id="btn" runat="server" OnClick="GetValue" Text="Submit" />
</form>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
lit.Text = "<title>hello world</title>";
TextBox t = new TextBox();
t.ID = "abc";
form1.Controls.Add(t);
HtmlInputText hit = new HtmlInputText();
hit.ID = "def";
form1.Controls.Add(hit);
}
void GetValue(Object sender, EventArgs e)
{
TextBox t = (TextBox)FindControl("abc");
Response.Write(t.Text);
Response.Write("<BR>");
HtmlInputText hit = (HtmlInputText)FindControl("def");
Response.Write(hit.Value);
}
</script>
if you insist on using Response.Write("<input name='xxx'>"), then you have to use Request.Form["xxx"] to retrieve the value