2016-11-26 74 views
0

幫助!asp.net中的多個runat服務器表單

我有一個登錄和一個註冊html表單,每個單擊表單上的各個鏈接,並且沒有回發或頁面刷新事件。

問題是asp.net不允許我有兩個runat = server表單。 我可以訪問表單的輸入字段。

我已經添加ASP:在地方輸入型的按鈕 =的形式,以存取權限的onclick方法「提交」,但隨後又asp.net不允許我添加了ASP按鈕(服務器端控制),當我從任何具有此asp按鈕的窗體中刪除runat =「server」!

問題:

如何訪問提交的表格按鈕,這樣我可以註冊執行的操作背後所需的代碼和登錄

有沒有辦法實現我的目標是什麼? (可能會有一些方法來隱藏的一種形式中開始,並顯示它當我點擊肘杆)

這裏的登錄註冊表單的

代碼:

<div> 
<header> 

     </header> 
     <section>    
      <div id="container_demo" > 

       <a class="hiddenanchor" id="toregister"></a> 
       <a class="hiddenanchor" id="tologin"></a> 
       <div id="wrapper"> 
        <div id="login" class="animate form"> 
         <form id="form1" action="#" runat="server" > 
          <h1>Log in</h1> 
          <p> 
           <label for="username" class="uname" data-icon="u" > Your email </label> 
           <input id="username" name="username" runat="server" required="required" type="text" placeholder="myusername or [email protected]"/> 
          </p> 
          <p> 
           <label for="password" class="youpasswd" data-icon="p"> Your password </label> 
           <input id="password" name="password" runat="server" required="required" type="password" placeholder="eg. X8df!90EO" /> 
          </p> 
          <p class="keeplogin"> 
           <input type="checkbox" name="loginkeeping" id="loginkeeping" value="loginkeeping" /> 
           <label for="loginkeeping">Keep me logged in</label> 
          </p> 
          <p class="login button"> 
           <asp:Button Text="Submit" runat="server" OnClick="Submit" /> 
           <!--<input type="submit" value="Login" />--> 
          </p> 
          <p class="change_link"> 
           Not a member yet ? 

           <a href="#toregister" class="to_register">Join us</a>    //toggle link 
          </p> 
         </form> 
        </div> 

        <div id="register" class="animate form"> 
         <form id="form2" action="#" runat="server" > 
          <h1> Sign up </h1> 
          <p style="margin-top:4px;margin-bottom:2px;"> 
           <label for="usernamesignup" class="uname" data-icon="u">Your username</label> 
           <input id="usernamesignup" name="usernamesignup" runat="server" required="required" type="text" placeholder="mysuperusername690" /> 
          </p> 
          <p style="margin-top:4px;margin-bottom:2px;"> 
           <label for="emailsignup" class="youmail" data-icon="e" > Your email</label> 
           <input id="emailsignup" name="emailsignup" runat="server" required="required" type="email" placeholder="[email protected]"/> 
          </p> 
          <p style="margin-top:4px;margin-bottom:2px;"> 
           <label for="passwordsignup" class="youpasswd" data-icon="p">Your password </label> 
           <input id="passwordsignup" name="passwordsignup" runat="server" required="required" type="password" placeholder="eg. X8df!90EO"/> 
          </p> 
          <p style="margin-top:4px;margin-bottom:2px;"> 
           <label for="mob1" class="uname" data-icon="u">Your mob no.</label> 
           <input id="mob" name="mob" runat="server" required="required" type="text" placeholder="9450.." /> 
          </p> 

          <p class="signin button"> 
           <asp:Button Text="Submit" runat="server" OnClick="Submitr" /> 
           <!--<input type="submit" value="Sign up"/> --> 
          </p> 
          <p class="change_link"> 
           Already a member ? 
           <a href="#tologin" class="to_register"> Go and log in </a>   //toggle link 
          </p> 
       </form> 
        </div> 

       </div> 
      </div> 
     </section> 





</div> 
+0

你可以只有一個表格,它具有'runat = server'',這是一個事實。所以只把你的輸入轉換成一種形式,併爲兩個按鈕設置「onclick」。或者創建兩種形式,但不要爲它們中的任何一個設置''runat = server'',併爲每個表單設置兩個不同的動作(每個動作將是一個不同的aspx頁面)並使用「Page_Load'事件來處理提交。 – xxxmatko

+0

參考[這篇文章](http://stackoverflow.com/a/7544462/3682162) – Vikrant

回答

0

好最後我得到了它在應用我的大腦後!

這是我做過什麼:

應用在兩個服務器端ASP按鈕註冊表格上形成

<asp:Button Text="tologin" runat="server" OnClick="changetologin" ForeColor="#1DA2C1" BackColor="#F7F8F1" /> 

登錄表單上:

<asp:Button Text="Join us" runat="server" OnClick="changetosignup" ForeColor="#1DA2C1" BackColor="#F7F8F1" /> 

在頁面加載:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["form2"] == null && Session["form1"] == null) //show login hide signup 
    { 
     form1.Visible = true; 
     form2.Visible = false; 

    } 


    if (Session["form2"] != null && Session["form1"]==null) //show signup hide login 
    { 
     form1.Visible = false; 
     form2.Visible = true; 
     Session["form2"] = null; 
    } 
    if (Session["form1"] != null && Session["form2"] == null)  //show login hide signup 
    { 
     form1.Visible = true; 
     form2.Visible = false; 
     Session["form1"] = null; 
    } 

} 

註冊表格上切換按鈕的點擊:

protected void changetologin(object sender, EventArgs e) 
{ 

    Session["form1"] = "clicked"; 

    Response.Redirect("#tologin"); 

} 

上切換按鈕的點擊登錄表單上:

protected void changetosignup(object sender, EventArgs e) 
{ 
    Session["form2"] = "clicked"; 

    Response.Redirect("#toregister"); 


} 

總之: 窗體可見屬性和會話變量的組合做了伎倆!

相關問題