簡體   English   中英

如何在ASP.NET頁上兩次提交數據

[英]How to submit data twice on an ASP.NET page

我有一個網頁。 頂部是<form id="form1" runat="server">內的搜索欄。

我還想在同一頁面上添加一個表單,該表單將允許用戶注冊其詳細信息。 問題,ASP.NET每頁只允許一種形式。

我如何實現我的目標? 任何解決方法?

將您要調用的代碼放在不同的按鈕單擊事件中。 因此,如果單擊搜索按鈕,則僅運行搜索按鈕單擊事件中的代碼。 如果單擊注冊按鈕,則僅運行注冊單擊事件中的代碼。

這是一個例子:

protected void Page_Load(object sender, EventArgs e) {

    // Common code

}

protected void btnSearch_Click(object sender, EventArgs e) {

    // Search code

}

protected void btnRegister_Click(object sender, EventArgs e) {

    // Register code

}

雙擊設計器中的按鈕,將在后面的代碼中創建單擊事件。

您在頁面上只能有一個服務器端表單。

如果可以選擇的話,您可以runat="server") with a separate action - this POST can go to a different page, where you will have to access的客戶端表單(無需runat="server") with a separate action - this POST can go to a different page, where you will have to access Request.Form`來檢索發布的值。 。

另一個選擇是使用單獨的按鈕與不同的事件處理程序一起發布。

您可以使用簡單的HTML表單方法,但是始終存在將整個頁面發回的問題。 或使用mvc:

asp.net 3.5是否在單個頁面上支持多種形式?

正如@Simon的答案中已經提到的那樣,在代碼中很容易擁有多個單擊處理程序,以在頁面上准確地處理所需的內容-這是解決“缺少多種形式”問題的最簡單方法。

在這種情況下,非常有用的是<asp:Panel>控件的DefaultButton屬性。 這意味着您應該在頁面的多個區域中使用(例如) <asp:TextBox>控件,並且每個區域都具有特定的<asp:Button>關聯,如果焦點位於文本框之一中,則按Return鍵Enter將導致單擊DefaultButton

例如...

<asp:Panel runat="server" DefaultButton="btnSearch">
  Search: <asp:TextBox runat="server" id="txtSearcn"/>
  <asp:Button runat="server" id="btnSearch" Text="Search" OnClick="btnSearch_Click"/>
</asp:Panel>

有關<asp:Panel>DefaultButton屬性的更多信息,請參見MSDN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM