2017-06-22 74 views
0

我有一個ASPX gridview,第一列是複選框,最後一列是註釋文本框。我想要求用戶留下評論,如果他們取消複選框。如何檢查GridView的每一行並顯示錯誤消息?

最初,我認爲我可以在VB端使用For Each,並通過消息傳遞,提醒用戶他們忘記了包含註釋。從環顧四周,它看起來像MsgBox和MessageBox在這種情況下是不可用的。我看到的另一個選項是在一些java中使用Response.Write和腳本,但我無法實現它。其他用戶提到,如果發生錯誤,使用Response.Write可能會導致問題。

有沒有辦法做到這一點?再次,我想檢查每一行,如果複選框未選中,請確保評論文本框中有某些內容。我在VB知識中介,但這是我第一次搞亂ASP.net。任何幫助或建議將不勝感激。

+1

聽起來像你會在JavaScript中做的事情。一個gridview只是在瀏覽器中呈現爲一個表格,它很容易遍歷DOM來檢查每一行。 – Simon

回答

0

在未能找到簡單的方法將消息推送給用戶之後,我決定使用我已在前端使用的按鈕發送更新。

<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 

我敢肯定,還有更多的選擇,但是這可以完成工作。

相關問題