почему нажатием кнопки вставьте данные дважды - PullRequest
1 голос
/ 01 февраля 2012

у меня есть эта кнопка, которую я добавляю в строку данных, однако, я добавляю только две строки даты, когда нажимаю эту кнопку, она дает мне 4 данных, каждая дата вставляется дважды, означая дату A ден дата B ден дата Aи дата ден B, в чем проблема

Защищенный Sub Button2_Click (отправитель как объект, e как System.EventArgs) Обрабатывает Button2.Click

    Dim rowIndex As Integer = 0
    Dim sc As New StringCollection()
    Dim sc1 As New Date
    If ViewState("CurrentTable") IsNot Nothing Then
        Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
        Dim drCurrentRow As DataRow = Nothing
        If dtCurrentTable.Rows.Count < 10 Then
            For i As Integer = 1 To dtCurrentTable.Rows.Count
                'extract the TextBox values

                Dim box5 As TextBox = DirectCast(Gridview3.Rows(rowIndex).Cells(1).FindControl("TextBox5"), TextBox)


                Dim box7 As Date = Convert.ToDateTime(box5.Text)


                Dim myConn As New SqlConnection
                Dim myCmd As New SqlCommand
                myConn.ConnectionString = ConfigurationManager.ConnectionStrings("mydatabase").ConnectionString
                Dim cmd As String
                cmd = "Insert into Date values (@date) "
                myCmd.CommandText = cmd
                myCmd.CommandType = CommandType.Text

                myCmd.Parameters.Add(New SqlParameter("@date", box7))


                myCmd.Connection = myConn
                myConn.Open()
                myCmd.ExecuteNonQuery()
                myCmd.Dispose()
                myConn.Dispose()
                rowIndex += 1
            Next


        End If
    Else
        '   lblMessage.Text = "Cannot save as there no information recorded"
        MsgBox("failed")
    End If
End Sub
<asp:GridView ID="Gridview3" runat="server" AutoGenerateColumns="False" 
            Height="89px" ShowFooter="True" Width="303px">
            <Columns>
                <asp:BoundField DataField="RowNumber" HeaderText="No of Available:" />
                <asp:TemplateField HeaderText="New Date Available :">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox5" runat="server" />
                        <AjaxToolkit:CalendarExtender ID="calExtender6" runat="server" 
                            Format="dd/MM/yyyy" OnClientDateSelectionChanged="CheckDateEalier" 
                            TargetControlID="TextBox5" />
                    </ItemTemplate>
                    <FooterStyle Height="22px" HorizontalAlign="Right" />
                    <FooterTemplate>
                        <asp:Button ID="ButtonAdd" runat="server" onclick="ButtonAdd_Click" 
                            Text="Add New Row" />
                    </FooterTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>  
    Protected Sub ButtonAdd_Click(sender As Object, e As System.EventArgs)
    AddNewRowToGrid()
End Sub

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Вы вызывали функцию дважды: один раз, когда вы объявляете «Handles Button2.Click», и второй, когда вы устанавливаете onclick = «ButtonAdd_Click».

Вам нужно выбрать один из вариантов.

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

1 голос
/ 01 февраля 2012

Пожалуйста, проверьте на странице просмотра. Я столкнулся с подобной проблемой, как это в моих стойках, весна, приложение гибернации. Мой метод действия был вызван дважды. Это потому, что я дал тег для кнопки, как отправить. что-то вроде <button:submit.... Просто убедитесь, что ваш метод вызывается один или два раза.

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