2008-09-18 3 views
5

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

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

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

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

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

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

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

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

Крис

ответ

8

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

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

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

1

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

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

1

Возможно, я не понимаю вопрос, но вы не можете просто иметь 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 

Что-то вдоль этих линий?

0

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

+0

Я посмотрю на это, но поскольку это учебное упражнение, я бы хотел сделать это «вручную», если это возможно. – CJM 2008-09-18 15:04:14

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