2013-03-12 4 views
2

Я новичок в ASP.NET. Я экспериментирую с веб-формами. У меня есть 2 страницы: NewOrder.aspx, который фиксирует заказ пользователя, а затем перекрестные ссылки на SaveOrder.aspx, где я хочу сохранить заказ и отобразить некоторую информацию обратно пользователю.целевая страница aspx не отображается при перекрестном соединении

<telerik:RadButton ID="BtnSubmirOrder" runat="server" ButtonType="StandardButton" AutoPostBack="true" 
       Text="Place order" PostBackUrl="SaveOrder.aspx"> 
</telerik:RadButton> 

При загрузке SaveOrder.aspx приведенный ниже код устанавливает его управляющие значения и сохраняет порядок. однако браузер остается в NewOrder.aspx.

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (PreviousPage==null || !PreviousPage.IsCrossPagePostBack) 
      Response.Redirect("~/Default.aspx"); 

     var referencingPage = PreviousPage as NewOrder; 
     int id = Int32.Parse(referencingPage.SelectedPublicationId); 


     DateTime neededBy = referencingPage.SelectedOrderDate; 

     LblSummaryIsbn.Text = referencingPage.SelectedIsbn; 
     LblSummaryNbrCopies.Text = referencingPage.NbrOfOrderedCopies; 
     DateTime orderDate = DateTime.Now; 
     LblSummaryOrderDate.Text = orderDate.ToShortDateString(); 
     LblSummaryTitle.Text = referencingPage.SelectedPublicationTitle; 
     int quantity = Int32.Parse(referencingPage.NbrOfOrderedCopies); 
     StockContainer _context = new StockContainer(); 
     Order newOrder = Order.CreateOrder(orderDate, quantity, neededBy, id); 
     _context.Orders.AddObject(newOrder); 
     _context.SaveChanges(); 
    } 

Я могу видеть из JavaScript, что действия формы имеет набор для SaveOrder.aspx, когда кнопка нажата, так почему браузер не отображает его?

+0

Не знаю, о 'RadButton', но это должно работать с обычными кнопками – nunespascal

+0

FWIW, его гораздо более распространенной парадигмы в Web Forms для сохранения вашего заказа в коде позади NewOrder.aspx, а затем, возможно, в успешной рутине сохранения, перенаправляйте на страницу подтверждения. – Graham

+0

спасибо @nunespascal, ваше предложение действительно сработало. – kfc

ответ

0

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

Вы можете сделать что-то вроде следующего, чтобы ввести событие нажатия кнопки. Логика перенаправления может идти туда.

Markup:

<telerik:RadButton ID="btnSubmit" runat="server" Text="Place Order" 
OnClick="btnSubmit_Click" /> 

Код:

public class NameOfPage 
{ 
    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     // You could do validation here and display an error message if something is not right. 
     // For simplicity I am assuming the data comes from a set of textboxes. 
     if (!PageIsValid()) 
     { 
      return; 
     } 

     StockContainer _context = new StockContainer(); 
     Order newOrder = Order.CreateOrder(txtOrderDate.Text, txtQuantity.Text, txtNeededBy.Text, id); 
     _context.Orders.AddObject(newOrder); 
     _context.SaveChanges(); 
     // Add your redirect logic here. 
    } 

    private bool PageIsValid() 
    { 
     if (string.IsNullOrEmpty(txtOrderDate.Text)) 
     { 
      return false; 
     } 

     if (string.IsNullOrEmpty(txtQuantity.Text)) 
     { 
      return false; 
     } 

     // and so on for the other fields that are required. 
     return true; 
    } 
} 
Смежные вопросы