4
A
回答
1
有一種方法通過使用自定義HtmlForm類來切換窗體,該類可以使窗體標記呈現開啓和關閉。我拿出關於如何使用這個貝寶和周圍的ASP.NET單一形式的標籤問題得到一個博客帖子:
http://www.codersbarn.com/post/2008/03/08/Solution-to-ASPNET-Form-PayPal-Problem.aspx
希望這有助於:-)
3
不幸的是,對於ASPNET表單,您只能有一個FORM
標記和runat="server"
屬性。
但是,如果排除runat="server"
屬性(只要它們不是嵌套在另一箇中),則可以根據需要製作儘可能多的FORM
標籤。
在你的母版,例如,你可以有在頁面頂部的登錄表單,並遂把形式runat="server"
略低:
<form action="login" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="Login" />
</form>
<form runat="server">
... place server controls here ...
</form>
5
ASP.NET Web窗體都是圍繞這一理念建立僅限1-形式。爲了解決這個問題,你就需要使用兩種不同的風味(一拉MVC)或看看這篇文章,如何解決它在Web窗體:
1
說不上用Asp.net的網頁表單完成(你可以有很多表單,但只有一個應該有一個runat =「服務器」,這是不切實際的),但你可以輕鬆地用Asp.net MVC完成它
1
您可以使用驗證組將窗體拆分爲多個邏輯窗體,以便您可以在按鈕的Click事件處理程序中調用驗證。這實際上是所有你需要ASP.Net中的多種形式,除非你試圖避免在回發中發佈所有表單域的數據。
嘗試以下操作Page樣品:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<script runat="server">
protected void btnSendMessage_Click(object sender, EventArgs e)
{
Page.Validate("contact");
if (!Page.IsValid)
return;
}
protected void btnLogin_Click(object sender, EventArgs e)
{
Page.Validate("login");
if (!Page.IsValid)
return;
}
</script>
<table>
<tr>
<td>
<asp:Label ID="lblUsername" AssociatedControlID="txtName" runat="server">Username:</asp:Label>
</td>
<td>
<asp:TextBox ID="txtName" ValidationGroup="login" runat="server" />
<asp:RequiredFieldValidator ID="reqName" ControlToValidate="txtName" Display="Dynamic" ErrorMessage="You must supply a username"
ValidationGroup="login" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblPassword" AssociatedControlID="txtPassword" runat="server">Password:</asp:Label>
</td>
<td>
<asp:TextBox ID="txtPassword" ValidationGroup="login" runat="server" />
<asp:RequiredFieldValidator ID="reqPassword" ControlToValidate="txtPassword" Display="Dynamic" ErrorMessage="You must supply a password"
ValidationGroup="login" runat="server" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btnLogin" Text="Login" ValidationGroup="login" OnClick="btnLogin_Click" runat="server" />
</td>
</tr>
</table>
<hr />
<h1>Contact</h1>
<table>
<tr>
<td>
<asp:Label ID="lblYourName" AssociatedControlID="txtYourName" runat="server">Your name:</asp:Label>
</td>
<td>
<asp:TextBox ID="txtYourName" runat="server" ValidationGroup="contact" />
<asp:RequiredFieldValidator ID="reqYourName" ControlToValidate="txtYourName" Display="Dynamic" ErrorMessage="Tell us your name!"
ValidationGroup="contact" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblYourEmail" AssociatedControlID="txtYourEmail" runat="server">Your email:</asp:Label>
</td>
<td>
<asp:TextBox ID="txtYourEmail" runat="server" ValidationGroup="contact" />
<asp:RequiredFieldValidator ID="reqEmail" ControlToValidate="txtYourEmail" Display="Dynamic" ErrorMessage="Tell us your email!"
ValidationGroup="contact" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMessage" AssociatedControlID="txtMessage" runat="server">Your message:</asp:Label>
</td>
<td>
<asp:TextBox ID="txtMessage" TextMode="MultiLine" runat="server" ValidationGroup="contact" />
<asp:RequiredFieldValidator ID="reqMessage" ControlToValidate="txtMessage" Display="Dynamic" ErrorMessage="We need you to send us a message!"
ValidationGroup="contact" runat="server" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btnSendMessage" ValidationGroup="contact" Text="Contact" OnClick="btnSendMessage_Click" runat="server" />
</td>
</tr>
</table>
</form>
</body>
</html>
在這裏你會得到驗證,它表現爲兩個不同的形式,雖然從兩個「形式」的數據將被調回。
這是在頁面上執行多個操作的標準範例,並且自ASP.Net 2 :)以來一直存在。
請原諒使用內聯代碼,我認爲這會讓示例更容易遵循。
相關問題
- 1. 與多個表格中的一個表格進行1對1的關係
- 2. 在MVC中,1個模型1個表格或1個模型幾個表格?
- 3. 在asp.net中顯示多個表格
- 4. 1個表格寬度與其他多個其他表格在LibGDX下相同
- 5. 用於ASP.NET的表格網格控件
- 6. 基於1行輸入生成多行數據 - Google表格
- 7. 將FixedColumns應用於多個表格
- 8. 多個一對多1個表greenDAO
- 9. 多個價格1個項目
- 10. 2表格(select) - 1依賴於2
- 11. 查詢多個表格 - 返回1個匹配
- 12. 每個桶多於1個reducer
- 13. div忽略起始位和多於1個空格
- 14. 在MySQL中查詢多於2個包含1個鍵的表?
- 15. Google表格大於1 TB的MySQL表格Sql文件
- 16. 1個IDREF和多於1個JAXB不一致之處
- 17. Vector pop_back()刪除多於1個條目
- 18. ArrayList爲循環刪除多於1個?
- 19. C++,如何獲得多於1個元素的列表
- 20. 數據透視表爲同一個ID返回多於1行
- 21. 基於多個表
- 22. 創建ASP.Net DataBound控件,呈現具有多個表格的表格
- 23. SQL從多個表格創建表格
- 24. Web2py - 多個表格只讀表格
- 25. HTML/ASP.NET中的CSS多列表格
- 26. 從多個表格中查詢多個表格中的條件
- 27. 如果句子中有多於1個空格,我如何將句子中的空格數減少爲1?
- 28. 2個表格,1頁 - WebMatrix/Razor
- 29. 查詢從N:1表格到一個
- 30. 從1表格中插入2表格