2013-06-11 3 views
1

Каждый раз, когда я изменяю выпадающий список на веб-странице, страница «сбрасывается». Строка, которую я вставил, программно исчезает, и записывается новая. Я хочу, чтобы пользователь добавил несколько строк.Табличные строки исчезают при выпадающем списке ItemSelected

Я пытаюсь

  1. Используйте выпадающее меню для заполнения Mulitple GridViews отображающего Infromation ПРОДУКЦИИ
  2. пользователя добавят количество в текстовом поле
  3. нажмите кнопку «Добавить в корзину», которая будет. ..
  4. Создать новую строку на в существующей таблице на этой странице с выбранным сведения о продукте

Это работает отлично только для первой строки, однако, если я изменяю раскрывающийся список или нажимаю кнопку «Добавить в корзину», вновь вставленная строка будет перезаписана рядом с очередными обновлениями.

Это мой стол ...

<asp:Table ID="tblOrderPreview" runat="server" BorderStyle="Solid" Width="800px" > 
    <asp:TableHeaderRow BorderStyle= "Solid"><asp:TableHeaderCell>Product</asp:TableHeaderCell><asp:TableHeaderCell>Qty</asp:TableHeaderCell><asp:TableHeaderCell>Price</asp:TableHeaderCell><asp:TableHeaderCell>Total</asp:TableHeaderCell><asp:TableCell><b>Remove Item</b></asp:TableCell></asp:TableHeaderRow> 
    <asp:TableRow BorderStyle= "Solid"><asp:TableCell></asp:TableCell><asp:TableCell></asp:TableCell><asp:TableCell></asp:TableCell><asp:TableCell></asp:TableCell><asp:TableCell></asp:TableCell></asp:TableRow> 
</asp:Table> 

И это код кнопка вызовов:

Protected Sub btnAddToCart_Click(sender As Object, e As System.EventArgs) Handles btnAddToCart.Click 
    lblValidator.Visible = False 


     If txtQuantity.Text <> "" Then 

      lblValidator.Visible = False 

     Dim name As String 
     name = GridView3.Rows(0).Cells(0).Text.ToString 

     Dim qantity As Integer 
     qantity = Convert.ToDouble(txtQuantity.Text) 

     Dim price As String 
     price = Convert.ToDouble(GridView5.Rows(0).Cells(0).Text.ToString) 

     Dim total As String 
     total = "$" + (price * qantity).ToString 

     'insert new row to tblOrderPreview (count rows, then insert another row named COUNT+1 
     Dim tRow As New TableRow() 
     tblOrderPreview.Rows.Add(tRow) 

     Dim tCellProduct As New TableCell() 
     tCellProduct.Text = name 
     tRow.Cells.Add(tCellProduct) 

     Dim tCellQty As New TableCell() 
     tCellQty.Text = qantity.ToString 
     tRow.Cells.Add(tCellQty) 

     Dim tCellPrice As New TableCell() 
     tCellPrice.Text = price 
     tRow.Cells.Add(tCellPrice) 

     Dim tCellTotal As New TableCell() 
     tCellTotal.Text = total 
     tRow.Cells.Add(tCellTotal) 

     Dim tCellRemove As New TableCell() 
     tCellRemove.Text = "del!" 
     tRow.Cells.Add(tCellRemove) 


    Else 
     lblValidator.Visible = True 

    End If 

End Sub 
+1

Вы пробовали получать каждую строку, в пределах 'tblOrderPreview' в начале этой функции как' TableRowCollection', в конце повторного добавления 'TableRowCollection', а затем добавить ваш новый ряд? – FirstCape

+0

@FirstCape полезно спасибо. Я прочитал кое-что, и это может быть – Nimbocrux

ответ

1

Просто чтобы прояснить мой комментарий выше, и показать код:

Dim tblRowColl As TableRowCollection = tblOrderPreview.Rows 

'Run the code that gets the new row 

For Each tblRow As TableRow In tblRowColl 
    tblOrderPreview.Rows.Add(tblRow) 
Next 

Надеюсь, это поможет.

Спасибо,

Firstcape

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