当我点击按钮时,点击事件被触发两次..会出现什么问题? [英] when I clicks the button the click event fired twice .. What will be the problem ?

查看:69
本文介绍了当我点击按钮时,点击事件被触发两次..会出现什么问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI


Partial Public Class gridviewdynamic
    Inherits System.Web.UI.Page
    Dim cc As Integer = 0
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            FirstGridViewRow()
        End If
    End Sub
    Private Sub FirstGridViewRow()
        Dim dt As New DataTable()
        Dim dr As DataRow = Nothing
        dt.Columns.Add(New DataColumn("RowNumber", GetType(String)))
        dt.Columns.Add(New DataColumn("Col1", GetType(String)))
        dt.Columns.Add(New DataColumn("Col2", GetType(String)))
        dt.Columns.Add(New DataColumn("Col3", GetType(String)))
        dt.Columns.Add(New DataColumn("Col4", GetType(String)))
        dt.Columns.Add(New DataColumn("Col5", GetType(String)))
        dr = dt.NewRow()
        dr("RowNumber") = 1
        dr("Col1") = String.Empty
        dr("Col2") = String.Empty
        dr("Col3") = String.Empty
        dr("Col4") = String.Empty
        dr("Col5") = String.Empty
        dt.Rows.Add(dr)

        ViewState("CurrentTable") = dt


        grvStudentDetails.DataSource = dt
        grvStudentDetails.DataBind()


        Dim txn As TextBox = DirectCast(grvStudentDetails.Rows(0).Cells(1).FindControl("txtName"), TextBox)
        txn.Focus()
        Dim btnAdd As Button = DirectCast(grvStudentDetails.FooterRow.Cells(5).FindControl("ButtonAdd"), Button)
        Page.Form.DefaultFocus = btnAdd.ClientID

    End Sub
    Private Sub AddNewRow()
        Dim rowIndex As Integer = 0

        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            Dim drCurrentRow As DataRow = Nothing
            If dtCurrentTable.Rows.Count > 0 Then
                For i As Integer = 1 To dtCurrentTable.Rows.Count
                    Dim TextBoxName As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtName"), TextBox)
                    Dim TextBoxAge As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(2).FindControl("txtAge"), TextBox)
                    Dim TextBoxAddress As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(3).FindControl("txtAddress"), TextBox)
                    Dim RBLGender As RadioButtonList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(4).FindControl("RBLGender"), RadioButtonList)
                    Dim DrpQualification As DropDownList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(5).FindControl("drpQualification"), DropDownList)
                    drCurrentRow = dtCurrentTable.NewRow()
                    drCurrentRow("RowNumber") = i + 1

                    dtCurrentTable.Rows(i - 1)("Col1") = TextBoxName.Text
                    dtCurrentTable.Rows(i - 1)("Col2") = TextBoxAge.Text
                    dtCurrentTable.Rows(i - 1)("Col3") = TextBoxAddress.Text
                    dtCurrentTable.Rows(i - 1)("Col4") = RBLGender.SelectedValue
                    dtCurrentTable.Rows(i - 1)("Col5") = DrpQualification.SelectedValue
                    rowIndex += 1
                Next
                dtCurrentTable.Rows.Add(drCurrentRow)
                ViewState("CurrentTable") = dtCurrentTable

                grvStudentDetails.DataSource = dtCurrentTable
                grvStudentDetails.DataBind()

                Dim txn As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtName"), TextBox)
                ' txn.Focus;
                txn.Focus()
            End If
        Else
            Response.Write("ViewState is null")
        End If
        SetPreviousData()
    End Sub
    Private Sub SetPreviousData()
        Dim rowIndex As Integer = 0
        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            If dt.Rows.Count > 0 Then
                For i As Integer = 0 To dt.Rows.Count - 1
                    Dim TextBoxName As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtName"), TextBox)
                    Dim TextBoxAge As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(2).FindControl("txtAge"), TextBox)
                    Dim TextBoxAddress As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(3).FindControl("txtAddress"), TextBox)
                    Dim RBLGender As RadioButtonList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(4).FindControl("RBLGender"), RadioButtonList)
                    Dim DrpQualification As DropDownList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(5).FindControl("drpQualification"), DropDownList)
                    ' drCurrentRow["RowNumber"] = i + 1;

                    grvStudentDetails.Rows(i).Cells(0).Text = Convert.ToString(i + 1)
                    TextBoxName.Text = dt.Rows(i)("Col1").ToString()
                    TextBoxAge.Text = dt.Rows(i)("Col2").ToString()
                    TextBoxAddress.Text = dt.Rows(i)("Col3").ToString()
                    RBLGender.SelectedValue = dt.Rows(i)("Col4").ToString()
                    DrpQualification.SelectedValue = dt.Rows(i)("Col5").ToString()
                    rowIndex += 1
                Next
            End If
        End If
    End Sub
    Protected Sub ButtonAdd_Click(sender As Object, e As EventArgs)
        AddNewRow()
    End Sub
    Protected Sub grvStudentDetails_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
        SetRowData()
        If ViewState("CurrentTable") IsNot Nothing Then

            Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            Dim drCurrentRow As DataRow = Nothing
            Dim rowIndex As Integer = Convert.ToInt32(e.RowIndex)
            If dt.Rows.Count > 1 Then
                dt.Rows.Remove(dt.Rows(rowIndex))
                drCurrentRow = dt.NewRow()
                ViewState("CurrentTable") = dt
                grvStudentDetails.DataSource = dt
                grvStudentDetails.DataBind()

                For i As Integer = 0 To grvStudentDetails.Rows.Count - 2
                    grvStudentDetails.Rows(i).Cells(0).Text = Convert.ToString(i + 1)
                Next
                SetPreviousData()
            End If
        End If
    End Sub

    Private Sub SetRowData()
        Dim rowIndex As Integer = 0

        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            Dim drCurrentRow As DataRow = Nothing
            If dtCurrentTable.Rows.Count > 0 Then
                For i As Integer = 1 To dtCurrentTable.Rows.Count
                    Dim TextBoxName As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(1).FindControl("txtName"), TextBox)
                    Dim TextBoxAge As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(2).FindControl("txtAge"), TextBox)
                    Dim TextBoxAddress As TextBox = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(3).FindControl("txtAddress"), TextBox)
                    Dim RBLGender As RadioButtonList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(4).FindControl("RBLGender"), RadioButtonList)
                    Dim DrpQualification As DropDownList = DirectCast(grvStudentDetails.Rows(rowIndex).Cells(5).FindControl("drpQualification"), DropDownList)
                    drCurrentRow = dtCurrentTable.NewRow()
                    drCurrentRow("RowNumber") = i + 1
                    dtCurrentTable.Rows(i - 1)("Col1") = TextBoxName.Text
                    dtCurrentTable.Rows(i - 1)("Col2") = TextBoxAge.Text
                    dtCurrentTable.Rows(i - 1)("Col3") = TextBoxAddress.Text
                    dtCurrentTable.Rows(i - 1)("Col4") = RBLGender.SelectedValue
                    dtCurrentTable.Rows(i - 1)("Col5") = DrpQualification.SelectedValue
                    rowIndex += 1
                Next

                'grvStudentDetails.DataSource = dtCurrentTable;
                'grvStudentDetails.DataBind();
                ViewState("CurrentTable") = dtCurrentTable
            End If
        Else
            Response.Write("ViewState is null")
        End If
        'SetPreviousData();
    End Sub
    Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
        Try
            SetRowData()
            Dim table As DataTable = TryCast(ViewState("CurrentTable"), DataTable)
            cc = cc + 1
            MsgBox(cc)
            If table IsNot Nothing Then
                For Each row As DataRow In table.Rows
                    Dim txName As String = TryCast(row.ItemArray(1), String)
                    Dim txAge As String = TryCast(row.ItemArray(2), String)
                    Dim txAdd As String = TryCast(row.ItemArray(3), String)
                    Dim rbGen As String = TryCast(row.ItemArray(4), String)
                    Dim drpQual As String = TryCast(row.ItemArray(5), String)


                    'If txName IsNot Nothing OrElse txAge IsNot Nothing OrElse txAdd IsNot Nothing OrElse rbGen IsNot Nothing OrElse drpQual IsNot Nothing Then
                    'Do whatever is needed with this data,
                    'Possibily push it in database
                    'I am just printing on the page to demonstrate that it is working.
                    Response.Write(String.Format("{0} {1} {2} {3} {4}<br/>", txName, txAge, txAdd, rbGen, drpQual))

                    'End If
                Next
            End If
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub


End Class

推荐答案

以下更改



Change below

Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click





TO





TO

Protected Sub btnSave_Click(sender As Object, e As EventArgs)


这篇关于当我点击按钮时,点击事件被触发两次..会出现什么问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆