2012-03-19 7 views
0

GridViewの列の検証にアプローチする方法の提案が必要です。GridViewの行を検証する

現在、GridViewには3つの列(テスト、結果、完了日)があります。

[テスト]列には、SQLスクリプトに基づいて事前に入力されます。結果列は、ユーザーがテスト結果を入力する必要がある空のテキストボックスであり、日付列は、完了するテストの日付を入力するための空のテキストボックスを含む結果列と同じです。結果列、現在の日付列、私はカレンダーエクステンダーを使用している、エクステンダーとバリデーターを編集するマスクを有効にすることができたいと思っています。結果列では、テストに基づいてバリデーションが異なります。テストABCは、テストCBAがTrue/Falseである間は2〜7の間の結果しか得られません。私はちょうど各フィールドの検証のアプローチには分かりません。あなたが私を助けてくれることを願っています。ありがとう。

<asp:GridView ID="grdResults" runat="server" 
    CssClass="gridview" 
    RowStyle-CssClass="gridview_itm" 
    AlternatingRowStyle-CssClass="gridview_aitm" 
    HeaderStyle-CssClass="gridview_hdr" 
    Width="100%" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:TemplateField HeaderText="Test"> 
      <ItemTemplate> 
       <asp:Label ID="lblTest" runat="server" Text='<%#Eval("Test")%>'></asp:Label> 
      </ItemTemplate>             
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Result"> 
      <ItemTemplate> 
       <asp:TextBox ID="tbResult" runat="server" ></asp:TextBox> 
      </ItemTemplate>             
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Date Completed"> 
      <ItemTemplate> 
       <asp:TextBox ID="tbDate" runat="server" ></asp:TextBox> 
       <asp:Image ID="imgCalendar" runat="server" ImageUrl="~/App_Themes/Sugar2006/images/Calendar_scheduleHS.png" ImageAlign="Middle" /> 
       <asp:CalendarExtender ID="ce" runat="server" TargetControlID ="tbDate" PopupButtonID="imgCalendar" />   
       <asp:MaskedEditExtender ID="mex" runat="server" 
        TargetControlID="tbDate" 
        Mask="99/99/9999" 
        MaskType="Date" 
        MessageValidatorTip="true" 
        OnFocusCssClass="MaskedEditFocus" 
        OnInvalidCssClass="MaskedEditError" /> 
       <asp:MaskedEditValidator ID="mev" runat="server" 
        ControlToValidate="tbDate" 
        ControlExtender="mex" 
        Display="Dynamic" 
        InvalidValueMessage="This date is invalid" Font-Bold="True" 
        ForeColor="#D50000" /> 
      </ItemTemplate>             
     </asp:TemplateField>                
    </Columns>   
</asp:GridView> 
+0

これはGridViewの質問ではないので、検証に集中して質問を簡略化できますか?あなたが実際に期待していること( 'test abc'と' test cba'は何ですか?)も明確ではありません。 –

+0

さて、私はGridView Field Validationをしたいと思っているからだと思います... –

+0

"Tests"とは、医療検査のことです。Test - Flue Shot - サンプルテスト(ABC)を指定するだけで、 (CBA)... –

答えて

1

は、すべての必要なバリデータを追加し、有効/「テスト値」に応じRowDataBoundにそれらを無効に答えとして私のコメントを追加する(あなたの質問として抽象私の例を維持します)。

void GrdResults_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DataRowView rowView = (DataRowView)e.Row.DataItem; 
     String testValue = rowView["Test"]; 
     CompareValidator cv1 = (CompareValidator)e.Row.FindControl("cv1); // checks between 2-7 
     CompareValidator cv2 = (CompareValidator)e.Row.FindControl("cv2); // checks true/false 
     cv1.Enabled = testValue.ToUpper().Equals("ABC"); 
     cv2.Enabled = !cv1.Enabled; 
    } 
    } 
関連する問題