ASP.NET中使用多个RUNAT=SERVER FORM
你当前的位置:烁空 --> 技术文档全集
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;
        }
    }
}