2012-10-26 18 views
0

我有一個網頁。頂部是一個<form id="form1" runat="server">內的搜索欄。如何在ASP.NET頁面上提交數據兩次

我也想補充一點,相同的網頁,將允許用戶註冊自己的詳細信息的形式。問題,ASP.NET只允許每頁一個表單。

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

回答

0

把你想要在不同的按鈕點擊事件中調用的代碼。因此,如果單擊搜索按鈕,則只運行搜索按鈕單擊事件中的代碼。如果單擊註冊按鈕,則只運行寄存器單擊事件中的代碼。

下面是一個例子:

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 

} 

雙擊在設計師的按鈕將創建在後面的代碼click事件。

0

你只能有一個服務器端頁面上形式。

如果它是一個選項,你可以有一個客戶端的形式(不runat="server") with a separate action - this POST can go to a different page, where you will have to access Request.Form`檢索張貼的值。

另一種選擇是使用單獨的按鈕具有不同的事件處理程序發佈。

+0

謝謝你提醒我在我最後的答案。我真的很感激:D –

0

正如一個已經說明由@Simon提供的nswer很容易在代碼隱藏中有多個點擊處理程序來處理您在頁面上需要的內容 - 這是解決「缺少多種表單」問題的最簡單方法。

事情在這種情況下非常有用的是<asp:Panel>控制的DefaultButton屬性。這意味着如果您的網頁有多個區域(例如)<asp:TextBox>控件,並且每個區域都與特定的相關聯,如果焦點位於其中一個文本框中,則按返回輸入將導致在被點擊的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> 

See MSDN for more information on the DefaultButton attribute of <asp:Panel>

相關問題