テキストボックスとドロップダウンリストを動的に生成している場合は、おそらく検証コントロールも動的に生成したいでしょうが、すべてのドロップダウン リストとテキストボックスが静的である場合は、次を使用できます。
CustomValidator Web コントロールを使用し、ドロップダウン リストとテキスト ボックスのすべてのプロパティをチェックするクライアント側の JavaScript メソッドを記述し、関数を使用して Web コントロールの ClientValidationFunction を構成し、EnableClientScript=true を設定します。また、すべてのユーザーが JavaScript を有効にしているわけではありません。また、ベスト プラクティスであることを確認するために、常にサーバー側の検証関数も作成し、送信アクションで Page.IsValid() を呼び出します。
.aspx サンプル コード
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs"
Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function ValidateMe(sender, args) {
var txt = document.getElementById("txt");
if (txt.value != "")
args.IsValid = true;
else
args.IsValid = false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox id="txt" runat="server" />
<asp:CustomValidator ClientValidationFunction="ValidateMe" ID="custval"
runat="server" ErrorMessage="Fail" onservervalidate="custval_ServerValidate" />
<asp:Button ID="btn" runat="server" Text="push" onclick="btn_Click1" />
</form>
</body>
</html>
c# コードビハインド サンプル コード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System.Threading;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btn_Click1(object sender, EventArgs e)
{
if (Page.IsValid)
{
btn.Text = "PASS";
}
else
{
btn.Text = "FAIL";
}
}
protected void custval_ServerValidate(object source, ServerValidateEventArgs args)
{
if (txt.Text != "")
custval.IsValid = true;
else
custval.IsValid = false;
}
}