【问题标题】:How to check if all GridView Textboxes are filled using vb.Net如何使用 vb.Net 检查是否所有 GridView 文本框都已填充
【发布时间】:2016-03-31 14:25:39
【问题描述】:

所以我在 gridview 的模板字段中有我的文本框。我想要 6 个固定的页面加载文本框。我想通了那部分。如果所有 6 个文本框都已填满,我想在选择下拉值时添加一个新行。然后,下拉值将在新行出现时填充它。我该怎么做?我知道基本设置,但我只需要一些代码来检查所有文本框是否都已填满。

For Each row As GridViewRow In gvReq.Rows

    Dim Index As Integer = row.RowIndex
    Dim ReqText As TextBox = CType(gvReq.Rows(Index).FindControl("txtReqText"), TextBox)
    Dim chkReq As CheckBox = CType(gvReq.Rows(Index).FindControl("chkReq"), CheckBox)
    If ReqText.Text = "" Then
        ReqText.Text = reader("RequireExceptText").ToString
        chkReq.Checked = True
        If Regex.IsMatch(ReqText.Text, "_") Then
            Dim message As String = "The selected Requirement contains some blanks to fill."
            Dim sb As New System.Text.StringBuilder()
            sb.Append("<script type = 'text/javascript'>")
            sb.Append("window.onload=function(){")
            sb.Append("alert('")
            sb.Append(message)
            sb.Append("')};")
            sb.Append("</script>")
            ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
            ReqText.Focus()
        End If
        Exit For

    Else
        Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
        For Each row2 As GridViewRow In gvReq.Rows
            If dtCurrentTable.Rows.Count >= 6 Then
                If ReqText.Text <> "" Then
                    AddNewRow()
                End If
            End If
            Exit For
        Next

    End If

Next

【问题讨论】:

  • 我注意到的第一件事是,无论如何,你的 first for each 都会在第一个文本框中退出。在您的 else 语句中,检查文本框是否为空白的检查将始终为真,因为您没有在第二个循环中检查该行的文本框。修复这些问题后,如果您仍然遇到问题,请发布 AddNewRow() 调用的代码。

标签: asp.net vb.net gridview


【解决方案1】:

我找到了一种解决方法。效果很好!

 Dim LastReqText As TextBox = DirectCast(gvReq.Rows(gvReq.Rows.Count - 1).FindControl("txtReqText"), TextBox)
        If LastReqText.Text <> "" Then
            AddNewRow()

        End If

        For i As Integer = 0 To gvReq.Rows.Count - 1

            Dim ReqText As TextBox = DirectCast(gvReq.Rows(i).FindControl("txtReqText"), TextBox)
            Dim chkReq As CheckBox = CType(gvReq.Rows(i).FindControl("chkReq"), CheckBox)

            If ReqText.Text = "" Then
                ReqText.Text = reader("RequireExceptText").ToString
                chkReq.Checked = True
                If Regex.IsMatch(ReqText.Text, "_") Then
                    Dim message As String = "The selected Requirement contains some blanks to fill."
                    Dim sb As New System.Text.StringBuilder()
                    sb.Append("<script type = 'text/javascript'>")
                    sb.Append("window.onload=function(){")
                    sb.Append("alert('")
                    sb.Append(message)
                    sb.Append("')};")
                    sb.Append("</script>")
                    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
                    ReqText.Focus()
                End If
                Exit For

            End If

        Next

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    相关资源
    最近更新 更多