ASP.NET 在同一个页面不支持多个 RUNAT=SERVER FORMS,要解决这个问题,可以把每个 FORM 放在一个单独的 PANEL 控件中,这样用户就可以简单地通过单选按钮在不同 PANEL 间切换。 代码如下: 2FORMEXAMPLE.ASPX
<%@ PAGE LANGUAGE="C#" CODEBEHIND="2FORMEXAMPLE.CS" AUTOEVENTWIREUP="FALSE" INHERITS="_3LEAF_APP.C2FORMEXAMPLE" %> <HTML><HEAD> <META NAME=VS_TARGETSCHEMA CONTENT="HTML 4.0"> <META NAME="GENERATOR" CONTENT="MICROSOFT VISUAL STUDIO 7.0"> <META NAME="CODE_LANGUAGE" CONTENT="C#"></HEAD> <BODY>
<FORM METHOD="POST" RUNAT="SERVER" ID=FORM1> <P>LOOKUP BY <ASP:RADIOBUTTON ID=RADIOBUTTON1 RUNAT="SERVER" TEXT="FIRST NAME" AUTOPOSTBACK="TRUE" GROUPNAME=G1 CHECKED=TRUE></ASP:RADIOBUTTON> <ASP:RADIOBUTTON ID=RADIOBUTTON2 RUNAT="SERVER" TEXT="LAST NAME" AUTOPOSTBACK="TRUE" GROUPNAME=G1></ASP:RADIOBUTTON></P> <P></P> <P> <ASP:PANEL ID=PANEL1 RUNAT="SERVER" VISIBLE=TRUE> FIRST NAME : <ASP:TEXTBOX ID=TEXTBOX1 RUNAT="SERVER"></ASP:TEXTBOX> <ASP:REQUIREDFIELDVALIDATOR ID=REQUIREDFIELDVALIDATOR1 RUNAT="SERVER" ERRORMESSAGE="*" CONTROLTOVALIDATE="TEXTBOX1"></ASP:REQUIREDFIELDVALIDATOR> <ASP:BUTTON ID=BUTTON1 RUNAT="SERVER" TEXT="SUBMIT"></ASP:BUTTON> </ASP:PANEL> <ASP:PANEL ID=PANEL2 RUNAT="SERVER" VISIBLE=FALSE> LAST NAME : <ASP:TEXTBOX ID=TEXTBOX2 RUNAT="SERVER"></ASP:TEXTBOX> <ASP:REQUIREDFIELDVALIDATOR ID=REQUIREDFIELDVALIDATOR2 RUNAT="SERVER" ERRORMESSAGE="*" CONTROLTOVALIDATE="TEXTBOX2"></ASP:REQUIREDFIELDVALIDATOR> <ASP:BUTTON ID=BUTTON2 RUNAT="SERVER" TEXT="SUBMIT"></ASP:BUTTON> </ASP:PANEL> <P></P> <P> <ASP:LABEL ID=LABEL1 RUNAT="SERVER"></ASP:LABEL> </P> </FORM>
</BODY></HTML>
2FORMEXAMPLE.CS
NAMESPACE _3LEAF_APP { USING SYSTEM; USING SYSTEM.COLLECTIONS; USING SYSTEM.COMPONENTMODEL; USING SYSTEM.DATA; USING SYSTEM.DRAWING; USING SYSTEM.WEB; USING SYSTEM.WEB.SESSIONSTATE; USING SYSTEM.WEB.UI; USING SYSTEM.WEB.UI.WEBCONTROLS; USING SYSTEM.WEB.UI.HTMLCONTROLS;
/// <SUMMARY> /// SUMMARY DESCRIPTION FOR C2FORMEXAMPLE. /// </SUMMARY> PUBLIC CLASS C2FORMEXAMPLE : SYSTEM.WEB.UI.PAGE { PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.BUTTON BUTTON2; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.REQUIREDFIELDVALIDATOR REQUIREDFIELDVALIDATOR2; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.TEXTBOX TEXTBOX2; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.BUTTON BUTTON1; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.REQUIREDFIELDVALIDATOR REQUIREDFIELDVALIDATOR1; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.TEXTBOX TEXTBOX1; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.LABEL LABEL1; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.PANEL PANEL2; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.PANEL PANEL1; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.RADIOBUTTON RADIOBUTTON2; PROTECTED SYSTEM.WEB.UI.WEBCONTROLS.RADIOBUTTON RADIOBUTTON1; PUBLIC C2FORMEXAMPLE() { PAGE.INIT += NEW SYSTEM.EVENTHANDLER(PAGE_INIT); }
PROTECTED VOID PAGE_LOAD(OBJECT SENDER, EVENTARGS E) { IF (!ISPOSTBACK) { } }
PROTECTED VOID PAGE_INIT(OBJECT SENDER, EVENTARGS E) { // // CODEGEN: THIS CALL IS REQUIRED BY THE ASP+ WINDOWS FORM DESIGNER. // INITIALIZECOMPONENT(); }
/// <SUMMARY> /// REQUIRED METHOD FOR DESIGNER SUPPORT - DO NOT MODIFY /// THE CONTENTS OF THIS METHOD WITH THE CODE EDITOR. /// </SUMMARY> PRIVATE VOID INITIALIZECOMPONENT() { RADIOBUTTON1.CHECKEDCHANGED += NEW SYSTEM.EVENTHANDLER (THIS.RADIOBUTTON1_CHECKEDCHANGED); BUTTON1.CLICK += NEW SYSTEM.EVENTHANDLER (THIS.BUTTON1_CLICK); RADIOBUTTON2.CHECKEDCHANGED += NEW SYSTEM.EVENTHANDLER (THIS.RADIOBUTTON2_CHECKEDCHANGED); BUTTON2.CLICK += NEW SYSTEM.EVENTHANDLER (THIS.BUTTON2_CLICK); THIS.LOAD += NEW SYSTEM.EVENTHANDLER (THIS.PAGE_LOAD); }
PUBLIC VOID BUTTON2_CLICK (OBJECT SENDER, SYSTEM.EVENTARGS E) { LABEL1.TEXT = "YOU WANT TO SEARCH ON LAST NAME"; }
PUBLIC VOID BUTTON1_CLICK (OBJECT SENDER, SYSTEM.EVENTARGS E) { LABEL1.TEXT = "YOU WANT TO SEARCH ON FIRST NAME"; }
PUBLIC VOID RADIOBUTTON2_CHECKEDCHANGED (OBJECT SENDER, SYSTEM.EVENTARGS E) { PANEL1.VISIBLE = FALSE; PANEL2.VISIBLE = TRUE; }
PUBLIC VOID RADIOBUTTON1_CHECKEDCHANGED (OBJECT SENDER, SYSTEM.EVENTARGS E) { PANEL1.VISIBLE = TRUE; PANEL2.VISIBLE = FALSE; } } }
|