- PR -

RepeaterでのCustomValidatorを使用した入力チェックについて

1
投稿者投稿内容
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2008-02-07 14:33
いつもお世話になります。
現在ASP.net(VB2005)にてWEBサイトの開発を行っています。

現在、Repeaterコントロールを使用してTableを作成しています。tableの中の各行にはテキストボックスがあります。
そのテキストボックスの内容をCustomValidatorコントロールを使用して入力チェックを行いたいのですが、方法が分かりません。よろしくご教授下さい。

rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-02-07 15:50
ItemTemplateのところに、Validatorコントロールを書けばOKだと思います。
(例はRequiredFieldValidatorですが、同様にできると思います)

コード:

<ItemTemplate>
<tr>
<td>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("NAME") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
</td>
</tr>
</ItemTemplate>



実際にはGridViewを使ったほうが何かと便利だと思います。
どうしてもRepeaterでないとまずい理由があっても、別途GridViewを使って実装してみることで、
作成されたソースコードを参考にRepeaterのほうを実装していくことができます。
(上のコードはそうやって作りました)

[編集]DataGrid→GridViewへ訂正[/編集]

[ メッセージ編集済み 編集者: rain 編集日時 2008-02-07 16:09 ]
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2008-02-07 16:29
rainさん返信ありがとうございます。
たしかにRequiredFieldValidatorでしたら、思う通りの結果が返ってきます。
しかし、CustomValidatorコントロールのコードの方でイベントを取得する方法が分かりません。よろしくご教授下さい。
コード:
■ASPXファイル
<td>
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("NAME") %>'></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox1"
        Display="Dynamic" ErrorMessage="○×は必須入力です。">※</asp:RequiredFieldValidator>
    <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox1"
        ErrorMessage="あいうえお">※</asp:CustomValidator></td>
</td>
■VBファイル
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
'ここで入力されたTextBox1に入力された内容のエラーチェックを行いたいのですが、「HANDLE句には、それを含む型または基本型の1つで定義されたWithEvents変数が必要です」になってしまいます。
End Sub


rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-02-07 16:51
これだとどうでしょうか。

コード:
■ASPXファイル
<td>
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("NAME") %>'></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox1"
        Display="Dynamic" ErrorMessage="○×は必須入力です。">※</asp:RequiredFieldValidator>
    <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox1"
        ErrorMessage="あいうえお"
        OnServerValidate="CustomValidator1_ServerValidate">※</asp:CustomValidator></td>
</td>
■VBファイル
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
    '
End Sub

カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2008-02-07 17:39
rainさんありがとうございます。
教えていただいたコードで実現できました。
本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)