2012-10-26 4 views
0

У меня есть веб-страница. В верхней части находится панель поиска, которая находится внутри <form id="form1" runat="server">.Как отправить данные дважды на странице ASP.NET

Я также хочу добавить форму на той же странице, которая позволит пользователям регистрировать свои данные. Проблема. ASP.NET допускает только одну форму на страницу.

Как я могу достичь своей цели? Любые обходные пути?

ответ

0

Поместите код, который вы хотите вызвать, в разных событиях нажатия кнопки. Поэтому, если нажата кнопка поиска, запускается только код в событии click button. Если нажата кнопка регистрации, запускается только код в событии кликов регистров.

Вот пример:

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 

} 

Двойной щелчок кнопки в конструкторе будет создавать события щелчка в коде позади.

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

Как уже говорилось в а nswer by @Simon, легко обработать несколько обработчиков кликов в коде, чтобы обрабатывать именно то, что вам нужно на странице - это самый простой способ решить проблему «отсутствия нескольких форм».

Что-то очень полезное в этой ситуации является атрибутом DefaultButton элемента управления <asp:Panel>. Это означает, что если у вас есть несколько областей вашей страницы с (например) <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>

Смежные вопросы