【问题标题】:How to Check Each Row of GridView and Display Message on Error?如何检查GridView的每一行并在错误时显示消息?
【发布时间】:2017-06-22 20:47:25
【问题描述】:

我有一个 ASPX 网格视图,第一列中有一个复选框,最后一列有一个注释文本框。如果用户取消选中该复选框,我想要求用户发表评论。

最初,我认为我可以在 VB 端使用 For Each 并推送消息,提醒用户他们忘记包含评论。环顾四周,看起来 MsgBox 和 MessageBox 在这种情况下是不可用的。我看到的另一个选项提到在某些 java 中使用 Response.Write 和脚本,但我无法让它工作。其他用户提到,如果出现错误,像这样使用 Response.Write 可能会导致问题。

有没有办法做到这一点?同样,我想检查每一行,如果未选中复选框,请确保评论文本框中有内容。我的 VB 知识处于中等水平,但这是我第一次接触 ASP.net。任何帮助或建议将不胜感激。

【问题讨论】:

  • 听起来像是你会在 JavaScript 中做的事情。 gridview 只是在浏览器中呈现为一个表格,因此很容易遍历 DOM 来检查每一行。

标签: asp.net vb.net gridview


【解决方案1】:

在找不到向用户推送消息的简单方法后,我决定使用我已经在前端使用的按钮来发送我的更新。

<asp:Button ID="ApproveList" 
    runat="server" 
    style="width:200px;" 
    Text="Approve List" 
    CausesValidation="true"
    OnClick="UpdateSelectedRecords_Click"
    OnClientClick="return confirm('YOUR RECORDS WILL NOT BE APPROVED UNLESS ALL UNAPPROVED RECORDS HAVE A COMMENT. Are you sure you want to approve these records?');"/>

当用户点击按钮并确认他们想要继续时,它会在 VB 端运行 UpdateSelectedRecords_Click 子程序。该子程序的第一部分检查每一行是否符合我的条件,如果发现任何问题,它就会结束子程序。

' Verify that every unchecked row has a comment, else fail
For Each row As GridViewRow In GridUnapprovedRecords.Rows
    cb = CType(row.FindControl("CheckBox1"),CheckBox)
    strComment = row.FindControl("Comment")
    If Not cb.Checked Then
        If strComment.Text Is Nothing Or Len(strComment.Text) = 0 Then
            intErrors = intErrors + 1
        End If
    End If
Next

' If no unchecked boxes without comments, run updates
If intErrors = 0 Then
    ...
Else
    Exit Sub
End If

我确信还有更多优雅的选择,但这可以完成工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 2016-10-16
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    相关资源
    最近更新 更多