Несколько форм на странице ASP.NET - PullRequest
5 голосов
/ 18 сентября 2008

Исходя из классического фона ASP, я привык к нескольким формам на странице, но это явно ограничено на странице ASP.NET.

Однако у меня есть ситуация, когда у меня есть форма, которая собирает данные от пользователя, сохраняет данные в БД, а затем я хочу отобразить (и настроить значения) специальную форму, которая публикуется на веб-сайте PayPal. .

Если бы значения полей формы PayPal были статическими, проблем не было бы, но поскольку я хочу манипулировать на стороне сервера формы (для настройки полей qty, desc, price и т. Д.), Это будет проблема.

Я подумывал о перенаправлении на другую страницу после записи в БД, и я подозреваю, что это будет работать довольно хорошо, но это немного дополнительных усилий, которые могут оказаться излишними.

Мне также предложили, чтобы я мог программным образом отобразить другую форму, в зависимости от того, где я нахожусь в цикле. То есть используйте заполнитель, и в Page_Load я бы первоначально добавил форму БД (в комплекте с дочерними элементами управления) и форму PayPal после обратной передачи.

Этот сценарий должен быть обычным для вас, ребята, поэтому я ищу советы мнений и любые соответствующие примеры кода, если вы предпочитаете подход.

Я знаю, что смогу обойтись, но этот проект - средство обучения, поэтому я хочу принять то, что подходит для лучшей практики.

Заранее спасибо ...

Chris

Ответы [ 4 ]

8 голосов
/ 18 сентября 2008

Вы можете иметь несколько форм, только одна форма может иметь атрибут runat="server".

Существует множество ответов на то, как заставить PayPal работать; но так как это средство обучения, которое может быть обманом. Честно говоря, я бы посмотрел на полномасштабный API PayPal, а не использовал метод несколько упрощенной формы (с дополнительным преимуществом в том, что это должно расширить ваше обучение).

В противном случае да, установите HTML-форму вне серверной формы, добавьте в нее литерал и запишите в нем фрагменты.

1 голос
/ 18 сентября 2008

Может быть, я неправильно понимаю вопрос, но разве вы не можете просто иметь 2 div внутри формы, где только один виден в любой момент. например,

<form id="Form1" method="post" runat="server">
    <div id="getUserInput" visible="true">
          <asp:button id="btnSubmitFirst" />
    </div>
    <div id="doSubmissionToPaypal" visible="false">
          <asp:button id="btnSubmitSecond" />
    </div>
</form>

Затем в btnSubmitFirst_Click:

 doSubmissionToPaypal.visible=True
 getUserInput.visible = false

Что-то в этом роде?

1 голос
/ 18 сентября 2008

Основной подход заключается в использовании двух панелей на странице - одной для первой формы и другой для второй.

Вы можете изменить свойство видимости этих панелей в зависимости от того, какую форму вы хотите отобразить (во время загрузки страницы или в любое время до рендеринга).

0 голосов
/ 18 сентября 2008

Обходной путь для этого PayPal - использовать Код интеграции Paypal , так как Paypal не всегда удобен для интеграции. Тяжелая работа в основном сделана для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...