【发布时间】: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() 调用的代码。