-1

私は2列のグリッドビューを持っています。最初の行と最初の列を必須にする必要があることを確認したい。最初の列が空白の場合、保存を許可せず、メッセージを次のように表示する必要があります

1 行は必須です。

これを確認する方法は?

私の保存ボタンのクリックコーディングは以下の通りです

Dim row As GridViewRow 
For Each row In GridView1.Rows 
If row.RowType = DataControlRowType.DataRow Then 
    Dim t1 As String = CType(row.FindControl("TextBox2"), TextBox).Text 
    Dim dd As String = CType(row.FindControl("DropDownList3"), DropDownList).SelectedItem.Text 
    If Trim(t1) = "" Or (Trim(dd)= "" then 
        label6.Text = "HospNo,Date,SurgeryCode/Method are Mandatory" 
    End If 

しかし、これはすべてのグリッド列をチェックします。最初の行と列のみをチェックしたいです。

4

2 に答える 2

0

GridView1.Rows(0)最初の行を取得するために使用できます。

Dim firstRow = GridView1.Rows(0)
Dim TextBox2 = DirectCast(firstRow.FindControl("TextBox2"), TextBox)
Dim DropDownList3 = DirectCast(firstRow.FindControl("DropDownList3"), DropDownList)
If TextBox2.Text.Trim.Length = 0 OrElse DropDownList3.SelectedIndex = -1 Then
    label6.Text = "HospNo,Date,SurgeryCode/Method are Mandatory"
End If

しかし、これは ASP.NET で使用すべきアプローチではありません。代わりRequiredFieldValidatorに、クライアント側で検証できる which を使用してください。

例えば:

<asp:GridView ID="GridView1" OnSelectedIndexChanged="Grid1_SelectedIndexChanged"  AutoGenerateSelectButton="true" AutoGenerateColumns="false" runat="server" Width="300">
        <RowStyle  CssClass="GridViewRowStyle" />
        <AlternatingRowStyle CssClass="GridViewAlternatingRowStyle" />
        <HeaderStyle CssClass="GridViewHeaderStyle" />
        <SelectedRowStyle BackColor="Aqua" />
        <Columns>
            <asp:TemplateField HeaderText="Column 1" HeaderStyle-HorizontalAlign="Left">
               <ItemTemplate>
                    <asp:TextBox runat="server" ID="TxtColumn1" Text='<%# Bind("Column1") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator id="RequiredFieldValidator1"
                        EnableClientScript="true"
                        ControlToValidate="TxtColumn1"
                        Display="Static"
                        ErrorMessage="HospNo,Date,SurgeryCode/Method are Mandatory" 
                        runat="server"/> 
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
   </asp:GridView>  
于 2012-10-17T07:35:21.460 に答える
0
For Each row In GridView1.Rows 
 If row.RowType = DataControlRowType.DataRow Then 
 Dim t1 As String = CType(row.FindControl("TextBox2"), TextBox).Text 
 Dim dd As String = CType(row.FindControl("DropDownList3"),DropDownList).SelectedItem.Text 
If Trim(t1) = "" Or (Trim(dd)= "" then 
    label6.Text = "HospNo,Date,SurgeryCode/Method are Mandatory" 
End If
 Exit For
 End For  
于 2012-10-17T07:22:00.947 に答える