かんたんASP.NET - リスト

第3章 単票形式の入力フォーム


リスト 3-1 Labelコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server"
      Text="これがLabelです"></asp:Label>
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server"
      Text="これがLabelです"></asp:Label>
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-2 TextBoxコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server"
      Columns="8"
      Rows="5"
      Wrap="true"
      ReadOnly="true"
      TextMode="MultiLine"
      Text="このように
複数の行に
またがって
入力できます"></asp:TextBox>
  </div>
  </form>
</body>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server"
      Columns="8"
      Rows="5"
      Wrap="true"
      ReadOnly="true"
      TextMode="MultiLine"
      Text="このように
複数の行に
またがって
入力できます"></asp:TextBox>
  </div>
  </form>
</body>

↑Top


リスト 3-3 DropDownListコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:DropDownList ID="DropDownList1" runat="server">
      <asp:ListItem Text="ASP.NET" Value="1"
        Selected="True"></asp:ListItem>
      <asp:ListItem Text="C" Value="2"></asp:ListItem>
      <asp:ListItem Text="Visual C++" Value="3">
      </asp:ListItem>
      <asp:ListItem Text="Visual C#" Value="4">
      </asp:ListItem>
      <asp:ListItem Text="Visual Basic" Value="5">
      </asp:ListItem>
      <asp:ListItem Text="Java" Value="6">
      </asp:ListItem>
    </asp:DropDownList>
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:DropDownList ID="DropDownList1" runat="server">
      <asp:ListItem Text="ASP.NET" Value="1"
        Selected="True"></asp:ListItem>
      <asp:ListItem Text="C" Value="2"></asp:ListItem>
      <asp:ListItem Text="Visual C++" Value="3">
      </asp:ListItem>
      <asp:ListItem Text="Visual C#" Value="4">
      </asp:ListItem>
      <asp:ListItem Text="Visual Basic" Value="5">
      </asp:ListItem>
      <asp:ListItem Text="Java" Value="6">
      </asp:ListItem>
    </asp:DropDownList>
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-4 ListBoxコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:ListBox ID="ListBox1" runat="server"
      Rows="4" SelectionMode="Multiple">
      <asp:ListItem Text="ASP.NET" Value="1"
        Selected="True"></asp:ListItem>
      <asp:ListItem Text="C" Value="2"></asp:ListItem>
      <asp:ListItem Text="Visual C++" Value="3">
      </asp:ListItem>
      <asp:ListItem Text="Visual C#" Value="4" Selected="True">
      </asp:ListItem>
      <asp:ListItem Text="Visual Basic" Value="5">
      </asp:ListItem>
      <asp:ListItem Text="Java" Value="6">
      </asp:ListItem>
    </asp:ListBox>
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:ListBox ID="ListBox1" runat="server"
      Rows="4" SelectionMode="Multiple">
      <asp:ListItem Text="ASP.NET" Value="1"
        Selected="True"></asp:ListItem>
      <asp:ListItem Text="C" Value="2"></asp:ListItem>
      <asp:ListItem Text="Visual C++" Value="3">
      </asp:ListItem>
      <asp:ListItem Text="Visual C#" Value="4" Selected="True">
      </asp:ListItem>
      <asp:ListItem Text="Visual Basic" Value="5">
      </asp:ListItem>
      <asp:ListItem Text="Java" Value="6">
      </asp:ListItem>
    </asp:ListBox>
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-5 CheckBoxコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:CheckBox ID="CheckBox1" runat="server"
      Checked="true" Text="ASP.NET" />
    <asp:CheckBox ID="CheckBox2" runat="server"
      Checked="false" Text="Visual Basic" />
    <asp:CheckBox ID="CheckBox3" runat="server"
      Checked="false" Text="C#" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:CheckBox ID="CheckBox1" runat="server"
      Checked="true" Text="ASP.NET" />
    <asp:CheckBox ID="CheckBox2" runat="server"
      Checked="false" Text="Visual Basic" />
    <asp:CheckBox ID="CheckBox3" runat="server"
      Checked="false" Text="C#" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-6 RadioButtonコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:RadioButton ID="RadioButton1" runat="server"
      Checked="true" Text="ASP.NET" GroupName="グループ" />
    <asp:RadioButton ID="RadioButton2" runat="server"
      Checked="false" Text="Visual Basic"
      GroupName="グループ" />
    <asp:RadioButton ID="RadioButton3" runat="server"
      Checked="false" Text="C#" GroupName="グループ" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:RadioButton ID="RadioButton1" runat="server"
      Checked="true" Text="ASP.NET" GroupName="グループ" />
    <asp:RadioButton ID="RadioButton2" runat="server"
      Checked="false" Text="Visual Basic"
      GroupName="グループ" />
    <asp:RadioButton ID="RadioButton3" runat="server"
      Checked="false" Text="C#" GroupName="グループ" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-7 Buttonコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Button ID="Button1" runat="server" Text="ボタン" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Button ID="Button1" runat="server" Text="ボタン" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-8 イベント発生順説明用Webページ

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server" />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server" 
      ontextchanged="TextBox1_TextChanged">
    </asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server" 
      oncheckedchanged="CheckBox1_CheckedChanged" />
    <asp:Button ID="Button1" runat="server"
      Text="Button" onclick="Button1_Click" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-9 ValidationGroupプロパティの動作

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>ValidationGroupサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server" Text="値1">
    </asp:Label>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ErrorMessage="値1を入力してください"
      ControlToValidate="TextBox1" 
      ValidationGroup="Group1">
    </asp:RequiredFieldValidator><br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" 
      ValidationGroup="Group1" />

    <br /><br />

    <asp:Label ID="Label2" runat="server" Text="値2">
    </asp:Label>
    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator2"
      runat="server" 
      ErrorMessage="値2を入力してください"
      ControlToValidate="TextBox2" 
      ValidationGroup="Group2">
    </asp:RequiredFieldValidator><br />
    <asp:Button ID="Button2" runat="server"
      Text="Button" 
      ValidationGroup="Group2" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>ValidationGroupサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server" Text="値1">
    </asp:Label>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ErrorMessage="値1を入力してください"
      ControlToValidate="TextBox1" 
      ValidationGroup="Group1">
    </asp:RequiredFieldValidator><br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" 
      ValidationGroup="Group1" />

    <br /><br />

    <asp:Label ID="Label2" runat="server" Text="値2">
    </asp:Label>
    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator2"
      runat="server" 
      ErrorMessage="値2を入力してください"
      ControlToValidate="TextBox2" 
      ValidationGroup="Group2">
    </asp:RequiredFieldValidator><br />
    <asp:Button ID="Button2" runat="server"
      Text="Button" 
      ValidationGroup="Group2" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-10 Displayプロパティの動作

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>Displayサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ErrorMessage="値を入力してください"
      ControlToValidate="TextBox1" 
      Display="Static"
      ValidationGroup="Group1">
    </asp:RequiredFieldValidator>
    <asp:Button ID="Button1" runat="server"
      Text="Button" 
      ValidationGroup="Group1" />
    
    <br /><br />

    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator2"
      runat="server" 
      ErrorMessage="値を入力してください"
      ControlToValidate="TextBox2" 
      Display="Dynamic"
      ValidationGroup="Group2">
    </asp:RequiredFieldValidator>
    <asp:Button ID="Button2" runat="server"
      Text="Button" 
      ValidationGroup="Group2" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>Displayサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ErrorMessage="値を入力してください"
      ControlToValidate="TextBox1" 
      Display="Static"
      ValidationGroup="Group1">
    </asp:RequiredFieldValidator>
    <asp:Button ID="Button1" runat="server"
      Text="Button" 
      ValidationGroup="Group1" />
    
    <br /><br />

    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator2"
      runat="server" 
      ErrorMessage="値を入力してください"
      ControlToValidate="TextBox2" 
      Display="Dynamic"
      ValidationGroup="Group2">
    </asp:RequiredFieldValidator>
    <asp:Button ID="Button2" runat="server"
      Text="Button" 
      ValidationGroup="Group2" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-11 RequiredFieldValidatorのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>RequiredFieldValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="値を入力してください">
    </asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>RequiredFieldValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="値を入力してください">
    </asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-12 RangeValidatorのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>RangeValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RangeValidator ID="RangeValidator1"
      runat="server"
      ControlToValidate="TextBox1"
      ErrorMessage="値は10から20までの間で入力してください"
      MaximumValue="20" 
      MinimumValue="10"
      Type="Integer">
    </asp:RangeValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>RangeValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RangeValidator ID="RangeValidator1"
      runat="server"
      ControlToValidate="TextBox1"
      ErrorMessage="値は10から20までの間で入力してください"
      MaximumValue="20" 
      MinimumValue="10"
      Type="Integer">
    </asp:RangeValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-13 CompareValidatorのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>CompareValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:CompareValidator ID="CompareValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="10以外の値を入力してください"
      ValueToCompare="10"
      Operator="NotEqual"
      Type="Integer">
    </asp:CompareValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>CompareValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:CompareValidator ID="CompareValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="10以外の値を入力してください"
      ValueToCompare="10"
      Operator="NotEqual"
      Type="Integer">
    </asp:CompareValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-14 RegularExpressionValidatorのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>ReqularExpressionValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RegularExpressionValidator
      ID="RegularExpressionValidator1"
      runat="server"
      ControlToValidate="TextBox1" 
      ErrorMessage="URLを入力してください"
      ValidationExpression=
        "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?">
    </asp:RegularExpressionValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>ReqularExpressionValidatorサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RegularExpressionValidator
      ID="RegularExpressionValidator1"
      runat="server"
      ControlToValidate="TextBox1" 
      ErrorMessage="URLを入力してください"
      ValidationExpression=
        "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?">
    </asp:RegularExpressionValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-15 CustomValidatror用JavaScriptファンクション

function validateFunction(source, arguments) {
  if ( arguments.Value.indexOf("a") != -1 ) {
    arguments.IsValid = true;
  } else {
    arguments.IsValid = false;
  }
}

↑Top


リスト 3-16 CustomValidator用チェック処理イベントハンドラ

Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal e As ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
  If e.Value.IndexOf("a") <> -1 Then
    e.IsValid = True
  Else
    e.IsValid = False
  End If
End Sub

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs e)
{
  if (e.Value.IndexOf("a") != -1)
  {
    e.IsValid = true;
  }
  else
  {
    e.IsValid = false;
  }
}

↑Top


リスト 3-17 CustomValidatorのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>CustomValidatorサンプル</title>
  <script type="text/javascript">
  <!--
    function validateFunction(source, arguments) {
      if (arguments.Value.length <= 10) {
        arguments.IsValid = true;
      } else {
        arguments.IsValid = false;
      }
    }
  //-->
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:CustomValidator ID="CustomValidator1"
      runat="server"
      ControlToValidate="TextBox1" 
      ErrorMessage="値は10文字以内で入力してください"
      ClientValidationFunction="validateFunction">
    </asp:CustomValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>CustomValidatorサンプル</title>
  <script type="text/javascript">
  <!--
    function validateFunction(source, arguments) {
      if (arguments.Value.length <= 10) {
        arguments.IsValid = true;
      } else {
        arguments.IsValid = false;
      }
    }
  //-->
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:CustomValidator ID="CustomValidator1"
      runat="server"
      ControlToValidate="TextBox1" 
      ErrorMessage="値は10文字以内で入力してください"
      ClientValidationFunction="validateFunction">
    </asp:CustomValidator>
    <br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-18 ValidationSummaryコントロールのサンプル

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>ValidationSummaryサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server" Text="名前">
    </asp:Label>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="名前を入力してください"
      Text="!!!">
    </asp:RequiredFieldValidator><br />
    <asp:Label ID="Label2" runat="server" Text="年齢">
    </asp:Label>
    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:CompareValidator ID="CompareValidator1"
      runat="server" 
      ControlToValidate="TextBox2"
      ValueToCompare="0"
      Operator="GreaterThanEqual"
      ErrorMessage="年齢は0才以上にしてください"
      Text="!!!">
    </asp:CompareValidator><br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
    <asp:ValidationSummary ID="ValidationSummary1"
      runat="server"
      HeaderText="エラー一覧" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>ValidationSummaryサンプル</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Label ID="Label1" runat="server" Text="名前">
    </asp:Label>
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:RequiredFieldValidator
      ID="RequiredFieldValidator1"
      runat="server" 
      ControlToValidate="TextBox1"
      ErrorMessage="名前を入力してください"
      Text="!!!">
    </asp:RequiredFieldValidator><br />
    <asp:Label ID="Label2" runat="server" Text="年齢">
    </asp:Label>
    <asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:CompareValidator ID="CompareValidator1"
      runat="server" 
      ControlToValidate="TextBox2"
      ValueToCompare="0"
      Operator="GreaterThanEqual"
      ErrorMessage="年齢は0才以上にしてください"
      Text="!!!">
    </asp:CompareValidator><br />
    <asp:Button ID="Button1" runat="server"
      Text="Button" />
    <asp:ValidationSummary ID="ValidationSummary1"
      runat="server"
      HeaderText="エラー一覧" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-19 アンケートフォーム(aspxファイル)

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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 id="Head1" runat="server">
  <title>アンケートフォーム</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <h1>アンケート</h1>
    <h3>プロフィール</h3>
    <table>
      <tr>
        <td>
          <asp:Label ID="NameLabel" runat="server"
            Text="氏名"></asp:Label>
        </td>
        <td>
          姓<asp:TextBox ID="FamilyNameTextBox"
            runat="server"></asp:TextBox>
          名<asp:TextBox ID="FirstNameTextBox"
            runat="server"></asp:TextBox>
          <asp:RequiredFieldValidator
            ID="FamilyNameRequiredFieldValidator"
            runat="server" 
            ErrorMessage="姓を入力してください"
            ControlToValidate="FamilyNameTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
          <asp:RequiredFieldValidator
            ID="FirstNameRequiredFieldValidator"
            runat="server" 
            ErrorMessage="名を入力してください"
            ControlToValidate="FirstNameTextBox" 
            Display="Dynamic">
          </asp:RequiredFieldValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="KanaLabel" runat="server"
            Text="フリガナ"></asp:Label>
         </td>
        <td>
          姓<asp:TextBox ID="FamilyNameKanaTextBox"
            runat="server"></asp:TextBox>
          名<asp:TextBox ID="FirstNameKanaTextBox"
            runat="server"></asp:TextBox>
          <asp:RequiredFieldValidator
            ID="FamilyNameKanaRequiredFieldValidator" 
            runat="server"
            ErrorMessage="姓(カナ)を入力してください" 
            ControlToValidate="FamilyNameKanaTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
          <asp:RequiredFieldValidator
            ID="FirstNameKanaRequiredFieldValidator" 
            runat="server"
            ErrorMessage="名(カナ)を入力してください" 
            ControlToValidate="FirstNameKanaTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
       </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="MailAddressLabel" runat="server"
            Text="メールアドレス"></asp:Label>
        </td>
        <td>
          <asp:TextBox ID="MailAddressTextBox"
            runat="server"
            Width="260px"></asp:TextBox>
          <asp:RegularExpressionValidator
            ID="MailAddressRegularExpressionValidator" 
            runat="server"
            ErrorMessage="メールアドレスが正しくありません" 
            ControlToValidate="MailAddressTextBox" 
            ValidationExpression=
              "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
          </asp:RegularExpressionValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="BirthDayLabel" runat="server"
            Text="誕生日"></asp:Label>
         </td>
        <td>
          <asp:DropDownList ID="BirthDayGengoDropDownList"
            runat="server" Width="60px">
            <asp:ListItem Value=""></asp:ListItem>
            <asp:ListItem Value="明治">明治</asp:ListItem>
            <asp:ListItem Value="大正">大正</asp:ListItem>
            <asp:ListItem Value="昭和">昭和</asp:ListItem>
            <asp:ListItem Value="平成">平成</asp:ListItem>
          </asp:DropDownList>
          <asp:TextBox ID="BirthDayYearTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>年
          <asp:TextBox ID="BirthDayMonthTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>月
          <asp:TextBox ID="BirthDayDayTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>日
          <asp:CompareValidator
            ID="BirthDayYearCompareValidator"
            runat="server" 
            ErrorMessage="年は1以上で入力してください"
            ControlToValidate="BirthDayYearTextBox" 
            Display="Dynamic"
            Operator="GreaterThanEqual"
            Type="Integer" 
            ValueToCompare="1"></asp:CompareValidator>
          <asp:RangeValidator
            ID="BirthDayMonthRangeValidator"
            runat="server" 
            ErrorMessage="月は1~12を入力してください"
            ControlToValidate="BirthDayMonthTextBox" 
            Display="Dynamic"
            MaximumValue="12"
            MinimumValue="1"
            Type="Integer"></asp:RangeValidator>
          <asp:RangeValidator
            ID="BirthDayDayRangeValidator"
            runat="server" 
            ErrorMessage="日は1~31を入力してください"
            ControlToValidate="BirthDayDayTextBox" 
            Display="Dynamic"
            MaximumValue="31"
            MinimumValue="1"
            Type="Integer"></asp:RangeValidator>
          <asp:CustomValidator
            ID="BirthDayGengoCustomValidator"
            runat="server" 
            ControlToValidate="BirthDayGengoDropDownList"
            ErrorMessage="元号を選択してください"
            Display="Dynamic"></asp:CustomValidator>
          <asp:CustomValidator
            ID="BirthDayCustomValidator"
            runat="server" 
            ErrorMessage="誕生日の日付が正しくありません"
            Display="Dynamic"></asp:CustomValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="JobLabel" runat="server"
            Text="職業"></asp:Label>
         </td>
        <td>
          <asp:ListBox ID="JobListBox"
            runat="server" Rows="4">
            <asp:ListItem>公務員</asp:ListItem>
            <asp:ListItem>地方公務員</asp:ListItem>
            <asp:ListItem>法律</asp:ListItem>
            <asp:ListItem>IT業界</asp:ListItem>
            <asp:ListItem>マスメディア</asp:ListItem>
            <asp:ListItem>ホテル</asp:ListItem>
            <asp:ListItem>接客</asp:ListItem>
            <asp:ListItem>宿泊</asp:ListItem>
            <asp:ListItem>デザイン</asp:ListItem>
            <asp:ListItem>アパレル</asp:ListItem>
            <asp:ListItem>アパレル経営</asp:ListItem>
            <asp:ListItem>サラリーマン</asp:ListItem>
            <asp:ListItem>事務</asp:ListItem>
            <asp:ListItem>学問、研究系</asp:ListItem>
            <asp:ListItem>福祉・介護</asp:ListItem>
            <asp:ListItem>医療</asp:ListItem>
            <asp:ListItem>金融</asp:ListItem>
            <asp:ListItem>教育</asp:ListItem>
            <asp:ListItem>建築</asp:ListItem>
            <asp:ListItem>動物</asp:ListItem>
            <asp:ListItem>運輸業界</asp:ListItem>
            <asp:ListItem>農業・漁業</asp:ListItem>
            <asp:ListItem>陸上自衛隊</asp:ListItem>
            <asp:ListItem>海上自衛隊</asp:ListItem>
            <asp:ListItem>その他</asp:ListItem>
          </asp:ListBox>
        </td>
      </tr>
    </table>

    <h3>以下の項目にお答えください</h3>
    <h4>このサイトをどこで知りましたか?(複数回答可)</h4>
      <asp:CheckBox ID="TVCheckBox"
        runat="server" Text="テレビ" />
      <asp:CheckBox ID="NewsPaperCheckBox" runat="server"
        Text="新聞" />
      <asp:CheckBox ID="MagazineCheckBox" runat="server"
        Text="雑誌" />
      <asp:CheckBox ID="FriendCheckBox" runat="server"
        Text="友人・知人" />
      <asp:CheckBox ID="WebSearchCheckBox" runat="server"
        Text="Web検索" /><br />
      <asp:CheckBox ID="OtherCheckBox" runat="server"
        Text="その他" />
        (詳しくお書きください
        <asp:TextBox ID="OtherDetailTextBox"
          runat="server"
          Width="300px"></asp:TextBox>
        )<br />
      <asp:CustomValidator ID="CheckCustomValidator"
        runat="server" 
        ErrorMessage="最低1つは選択してください"
        Display="Dynamic"></asp:CustomValidator>    

    <h4>このサイトはどうでしたか?</h4>
      <asp:RadioButton ID="VeryGoodRadioButton"
        runat="server"
        GroupName="Rating" Text="とても良い" />
      <asp:RadioButton ID="GoodRadioButton" runat="server"
        GroupName="Rating" Text="良い" />
      <asp:RadioButton ID="NormalRadioButton"
        runat="server"
        GroupName="Rating" 
        Text="どちらでもない" />
      <asp:RadioButton ID="BadRadioButton" runat="server"
        GroupName="Rating" 
        Text="悪い" />
      <asp:RadioButton ID="VeryBadRadioButton"
        runat="server"
        GroupName="Rating" 
        Text="とても悪い" /><br />
      <asp:CustomValidator ID="RadioCustomValidator"
        runat="server" 
        ErrorMessage="どれか1つ選択してください"
        Display="Dynamic"></asp:CustomValidator>    

    <h4>その理由をお答えください</h4>
      <asp:TextBox ID="ReasonTextBox" runat="server"
        Width="450px"></asp:TextBox>

    <h4>ご意見・ご要望など自由にお書きください</h4>
      <asp:TextBox ID="FreeTextBox" runat="server"
        TextMode="MultiLine"
        Columns="50"
        Rows="5">
      </asp:TextBox>
    
    <br />
    <asp:Button ID="PostButton" runat="server"
      Text="送信" />
        
    <asp:ValidationSummary ID="EnqueteValidationSummary"
      runat="server" />
  </div>
  <hr />
  <div>
    <asp:Label ID="ResultLabel" runat="server">
    </asp:Label>
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <h1>アンケート</h1>
    <h3>プロフィール</h3>
    <table>
      <tr>
        <td>
          <asp:Label ID="NameLabel" runat="server"
            Text="氏名"></asp:Label>
        </td>
        <td>
          姓<asp:TextBox ID="FamilyNameTextBox"
            runat="server"></asp:TextBox>
          名<asp:TextBox ID="FirstNameTextBox"
            runat="server"></asp:TextBox>
          <asp:RequiredFieldValidator
            ID="FamilyNameRequiredFieldValidator"
            runat="server" 
            ErrorMessage="姓を入力してください"
            ControlToValidate="FamilyNameTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
          <asp:RequiredFieldValidator
            ID="FirstNameRequiredFieldValidator"
            runat="server" 
            ErrorMessage="名を入力してください"
            ControlToValidate="FirstNameTextBox" 
            Display="Dynamic">
          </asp:RequiredFieldValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="KanaLabel" runat="server"
            Text="フリガナ"></asp:Label>
         </td>
        <td>
          姓<asp:TextBox ID="FamilyNameKanaTextBox"
            runat="server"></asp:TextBox>
          名<asp:TextBox ID="FirstNameKanaTextBox"
            runat="server"></asp:TextBox>
          <asp:RequiredFieldValidator
            ID="FamilyNameKanaRequiredFieldValidator" 
            runat="server"
            ErrorMessage="姓(カナ)を入力してください" 
            ControlToValidate="FamilyNameKanaTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
          <asp:RequiredFieldValidator
            ID="FirstNameKanaRequiredFieldValidator" 
            runat="server"
            ErrorMessage="名(カナ)を入力してください" 
            ControlToValidate="FirstNameKanaTextBox"
            Display="Dynamic">
          </asp:RequiredFieldValidator>
       </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="MailAddressLabel" runat="server"
            Text="メールアドレス"></asp:Label>
        </td>
        <td>
          <asp:TextBox ID="MailAddressTextBox"
            runat="server"
            Width="260px"></asp:TextBox>
          <asp:RegularExpressionValidator
            ID="MailAddressRegularExpressionValidator" 
            runat="server"
            ErrorMessage="メールアドレスが正しくありません" 
            ControlToValidate="MailAddressTextBox" 
            ValidationExpression=
              "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
          </asp:RegularExpressionValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="BirthDayLabel" runat="server"
            Text="誕生日"></asp:Label>
         </td>
        <td>
          <asp:DropDownList ID="BirthDayGengoDropDownList"
            runat="server" Width="60px">
            <asp:ListItem Value=""></asp:ListItem>
            <asp:ListItem Value="明治">明治</asp:ListItem>
            <asp:ListItem Value="大正">大正</asp:ListItem>
            <asp:ListItem Value="昭和">昭和</asp:ListItem>
            <asp:ListItem Value="平成">平成</asp:ListItem>
          </asp:DropDownList>
          <asp:TextBox ID="BirthDayYearTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>年
          <asp:TextBox ID="BirthDayMonthTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>月
          <asp:TextBox ID="BirthDayDayTextBox"
            runat="server"
            Width="30px" MaxLength="2"></asp:TextBox>日
          <asp:CompareValidator
            ID="BirthDayYearCompareValidator"
            runat="server" 
            ErrorMessage="年は1以上で入力してください"
            ControlToValidate="BirthDayYearTextBox" 
            Display="Dynamic"
            Operator="GreaterThanEqual"
            Type="Integer" 
            ValueToCompare="1"></asp:CompareValidator>
          <asp:RangeValidator
            ID="BirthDayMonthRangeValidator"
            runat="server" 
            ErrorMessage="月は1~12を入力してください"
            ControlToValidate="BirthDayMonthTextBox" 
            Display="Dynamic"
            MaximumValue="12"
            MinimumValue="1"
            Type="Integer"></asp:RangeValidator>
          <asp:RangeValidator
            ID="BirthDayDayRangeValidator"
            runat="server" 
            ErrorMessage="日は1~31を入力してください"
            ControlToValidate="BirthDayDayTextBox" 
            Display="Dynamic"
            MaximumValue="31"
            MinimumValue="1"
            Type="Integer"></asp:RangeValidator>
          <asp:CustomValidator
            ID="BirthDayGengoCustomValidator"
            runat="server" 
            ControlToValidate="BirthDayGengoDropDownList"
            ErrorMessage="元号を選択してください"
            Display="Dynamic" 
            onservervalidate="BirthDayGengoCustomValidator_ServerValidate">
          </asp:CustomValidator>
          <asp:CustomValidator
            ID="BirthDayCustomValidator"
            runat="server" 
            ErrorMessage="誕生日の日付が正しくありません"
            Display="Dynamic"
            onservervalidate="BirthDayCustomValidator_ServerValidate">
          </asp:CustomValidator>
        </td>
      </tr>
      <tr>
        <td>
          <asp:Label ID="JobLabel" runat="server"
            Text="職業"></asp:Label>
         </td>
        <td>
          <asp:ListBox ID="JobListBox"
            runat="server" Rows="4">
            <asp:ListItem>公務員</asp:ListItem>
            <asp:ListItem>地方公務員</asp:ListItem>
            <asp:ListItem>法律</asp:ListItem>
            <asp:ListItem>IT業界</asp:ListItem>
            <asp:ListItem>マスメディア</asp:ListItem>
            <asp:ListItem>ホテル</asp:ListItem>
            <asp:ListItem>接客</asp:ListItem>
            <asp:ListItem>宿泊</asp:ListItem>
            <asp:ListItem>デザイン</asp:ListItem>
            <asp:ListItem>アパレル</asp:ListItem>
            <asp:ListItem>アパレル経営</asp:ListItem>
            <asp:ListItem>サラリーマン</asp:ListItem>
            <asp:ListItem>事務</asp:ListItem>
            <asp:ListItem>学問、研究系</asp:ListItem>
            <asp:ListItem>福祉・介護</asp:ListItem>
            <asp:ListItem>医療</asp:ListItem>
            <asp:ListItem>金融</asp:ListItem>
            <asp:ListItem>教育</asp:ListItem>
            <asp:ListItem>建築</asp:ListItem>
            <asp:ListItem>動物</asp:ListItem>
            <asp:ListItem>運輸業界</asp:ListItem>
            <asp:ListItem>農業・漁業</asp:ListItem>
            <asp:ListItem>陸上自衛隊</asp:ListItem>
            <asp:ListItem>海上自衛隊</asp:ListItem>
            <asp:ListItem>その他</asp:ListItem>
          </asp:ListBox>
        </td>
      </tr>
    </table>

    <h3>以下の項目にお答えください</h3>
    <h4>このサイトをどこで知りましたか?(複数回答可)</h4>
      <asp:CheckBox ID="TVCheckBox"
        runat="server" Text="テレビ" />
      <asp:CheckBox ID="NewsPaperCheckBox" runat="server"
        Text="新聞" />
      <asp:CheckBox ID="MagazineCheckBox" runat="server"
        Text="雑誌" />
      <asp:CheckBox ID="FriendCheckBox" runat="server"
        Text="友人・知人" />
      <asp:CheckBox ID="WebSearchCheckBox" runat="server"
        Text="Web検索" /><br />
      <asp:CheckBox ID="OtherCheckBox" runat="server"
        Text="その他" />
        (詳しくお書きください
        <asp:TextBox ID="OtherDetailTextBox"
          runat="server"
          Width="300px"></asp:TextBox>
        )<br />
      <asp:CustomValidator ID="CheckCustomValidator"
        runat="server" 
        ErrorMessage="最低1つは選択してください"
        Display="Dynamic"
        onservervalidate="CheckCustomValidator_ServerValidate">
      </asp:CustomValidator>    

    <h4>このサイトはどうでしたか?</h4>
      <asp:RadioButton ID="VeryGoodRadioButton"
        runat="server"
        GroupName="Rating" Text="とても良い" />
      <asp:RadioButton ID="GoodRadioButton" runat="server"
        GroupName="Rating" Text="良い" />
      <asp:RadioButton ID="NormalRadioButton"
        runat="server"
        GroupName="Rating" 
        Text="どちらでもない" />
      <asp:RadioButton ID="BadRadioButton" runat="server"
        GroupName="Rating" 
        Text="悪い" />
      <asp:RadioButton ID="VeryBadRadioButton"
        runat="server"
        GroupName="Rating" 
        Text="とても悪い" /><br />
      <asp:CustomValidator ID="RadioCustomValidator"
        runat="server" 
        ErrorMessage="どれか1つ選択してください"
        Display="Dynamic"
        onservervalidate="RadioCustomValidator_ServerValidate">
      </asp:CustomValidator>    

    <h4>その理由をお答えください</h4>
      <asp:TextBox ID="ReasonTextBox" runat="server"
        Width="450px"></asp:TextBox>

    <h4>ご意見・ご要望など自由にお書きください</h4>
      <asp:TextBox ID="FreeTextBox" runat="server"
        TextMode="MultiLine"
        Columns="50"
        Rows="5">
      </asp:TextBox>
    
    <br />
    <asp:Button ID="PostButton" runat="server"
      Text="送信" onclick="PostButton_Click" />
        
    <asp:ValidationSummary ID="EnqueteValidationSummary"
      runat="server" />
  </div>
  <hr />
  <div>
    <asp:Label ID="ResultLabel" runat="server">
    </asp:Label>
  </div>
  </form>
</body>
</html>

↑Top


リスト 3-20 アンケートフォーム(分離コードファイル)

Imports System.Globalization  ' 和暦を扱うために必要

Partial Class _Default
  Inherits System.Web.UI.Page
  ' 元号のチェック
  Protected Sub BirthDayGengoCustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles BirthDayGengoCustomValidator.ServerValidate
    ' 年月日いずれか入力されているか判定
    If Not String.IsNullOrEmpty(BirthDayYearTextBox.Text) _
     OrElse Not String.IsNullOrEmpty(BirthDayMonthTextBox.Text) _
     OrElse Not String.IsNullOrEmpty(BirthDayDayTextBox.Text) _
    Then
      ' 入力されている
      ' 元号が選択されていなければエラーとする
      If String.IsNullOrEmpty(args.Value) Then
        args.IsValid = False
      Else
        args.IsValid = True
      End If
    Else
      ' 入力されていない
      args.IsValid = True
    End If
  End Sub

  ' 誕生日の日付チェック
  Protected Sub BirthDayCustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles BirthDayCustomValidator.ServerValidate
    ' 誕生日項目のいずれかが入力されているときのみチェックを行う
    If BirthDayGengoDropDownList.SelectedIndex > 0 _
      OrElse Not String.IsNullOrEmpty(BirthDayYearTextBox.Text) _
      OrElse Not String.IsNullOrEmpty(BirthDayMonthTextBox.Text) _
      OrElse Not String.IsNullOrEmpty(BirthDayDayTextBox.Text) _
    Then
      ' 入力値を取得する
      Dim gengo As String = BirthDayGengoDropDownList.SelectedValue
      Dim year As String = BirthDayYearTextBox.Text.Trim()
      Dim month As String = BirthDayMonthTextBox.Text.Trim()
      Dim day As String = BirthDayDayTextBox.Text.Trim()

      ' 入力値が和暦として正しくなければエラー
      Dim birthDayString As String = String.Format( _
        "{0}{1}年{2}月{3}日", gengo, year, month, day)
      Dim culture As New CultureInfo("ja-JP", True)
      culture.DateTimeFormat.Calendar = New JapaneseCalendar()
      Dim birthDay As Date
      If DateTime.TryParseExact( _
        birthDayString _
        , "ggy年M月d日" _
        , culture _
        , DateTimeStyles.None _
        , birthDay) _
      Then
        args.IsValid = True
      Else
        args.IsValid = False
      End If
    Else
      args.IsValid = True
    End If
  End Sub

  ' サイトをどこで知ったかチェック
  Protected Sub CheckCustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CheckCustomValidator.ServerValidate
    ' 最低1つは選択されていないとエラー
    If TVCheckBox.Checked _
      OrElse NewsPaperCheckBox.Checked _
      OrElse MagazineCheckBox.Checked _
      OrElse FriendCheckBox.Checked _
      OrElse WebSearchCheckBox.Checked _
      OrElse OtherCheckBox.Checked _
    Then
      args.IsValid = True
    Else
      args.IsValid = False
    End If
  End Sub

  ' サイトの評価チェック
  Protected Sub RadioCustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles RadioCustomValidator.ServerValidate
    ' どれか一つ選択されていないとエラー
    If VeryGoodRadioButton.Checked _
      OrElse GoodRadioButton.Checked _
      OrElse NormalRadioButton.Checked _
      OrElse BadRadioButton.Checked _
      OrElse VeryBadRadioButton.Checked _
    Then
      args.IsValid = True
    Else
      args.IsValid = False
    End If
  End Sub

  ' 送信ボタンクリック
  Protected Sub PostButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PostButton.Click
    ' 結果のクリア
    ResultLabel.Text = ""

    ' チェック結果判定
    If Page.IsValid Then
      ' チェック結果エラーなし
      ' 入力値を表示
      ' 氏名
      ResultLabel.Text += String.Format( _
        "氏名:{0} {1}" _
        , FamilyNameTextBox.Text _
        , FirstNameTextBox.Text)
      ResultLabel.Text += "<br />"
      ' フリガナ
      ResultLabel.Text += String.Format( _
        "フリガナ:{0} {1}" _
        , FamilyNameKanaTextBox.Text _
        , FirstNameKanaTextBox.Text)
      ResultLabel.Text += "<br />"
      ' メールアドレス
      ResultLabel.Text += String.Format( _
        "メールアドレス:{0}" _
          , MailAddressTextBox.Text)
      ResultLabel.Text += "<br />"
      ' 誕生日
      ResultLabel.Text += String.Format( _
        "誕生日:{0}{1}年{2}月{3}日" _
        , New String() { _
          BirthDayGengoDropDownList.SelectedValue _
          , BirthDayYearTextBox.Text _
          , BirthDayMonthTextBox.Text _
          , BirthDayDayTextBox.Text _
          })
      ResultLabel.Text += "<br />"
      ' 職業
      ResultLabel.Text += String.Format( _
        "職業:{0}" _
        , JobListBox.SelectedValue)
      ResultLabel.Text += "<br />"
      ' サイトをどこで知ったか
      Dim checkTexts As String = ""
      If TVCheckBox.Checked Then
        checkTexts += TVCheckBox.Text
      End If
      If NewsPaperCheckBox.Checked Then
        If checkTexts <> "" Then
          checkTexts += ", "
        End If
        checkTexts += NewsPaperCheckBox.Text
      End If
      If MagazineCheckBox.Checked Then
        If checkTexts <> "" Then
          checkTexts += ", "
        End If
        checkTexts += MagazineCheckBox.Text
      End If
      If FriendCheckBox.Checked Then
        If checkTexts <> "" Then
          checkTexts += ", "
        End If
        checkTexts += FriendCheckBox.Text
      End If
      If WebSearchCheckBox.Checked Then
        If checkTexts <> "" Then
          checkTexts += ", "
        End If
        checkTexts += WebSearchCheckBox.Text
      End If
      If OtherCheckBox.Checked Then
        If checkTexts <> "" Then
          checkTexts += ", "
        End If
        checkTexts += OtherCheckBox.Text
        checkTexts += String.Format( _
          "({0})" _
          , OtherDetailTextBox.Text)
      End If
      ResultLabel.Text += String.Format( _
        "サイトをどこで知ったか:{0}" _
        , checkTexts)
      ResultLabel.Text += "<br />"
      ' サイトの評価
      Dim ratingText As String = ""
      If VeryGoodRadioButton.Checked Then
        ratingText = VeryGoodRadioButton.Text
      End If
      If GoodRadioButton.Checked Then
        ratingText = GoodRadioButton.Text
      End If
      If NormalRadioButton.Checked Then
        ratingText = NormalRadioButton.Text
      End If
      If BadRadioButton.Checked Then
        ratingText = BadRadioButton.Text
      End If
      If VeryBadRadioButton.Checked Then
        ratingText = VeryBadRadioButton.Text
      End If
      ResultLabel.Text += String.Format( _
        "サイトの評価:{0}" _
        , ratingText)
      ResultLabel.Text += "<br />"
      ' 評価の理由
      ResultLabel.Text += String.Format( _
        "評価の理由:{0}" _
        , ReasonTextBox.Text)
      ResultLabel.Text += "<br />"
      ' 意見、要望など
      ResultLabel.Text += String.Format( _
        "意見、要望など:{0}" _
        , FreeTextBox.Text _
          .Replace(Environment.NewLine, "<br />"))
    End If
  End Sub

End Class

using System;
using System.Globalization; // 和暦を扱うために必要
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
  // 元号のチェック
  protected void BirthDayGengoCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
  {
    // 年月日いずれか入力されているか判定
    if (!String.IsNullOrEmpty(BirthDayYearTextBox.Text)
      || !String.IsNullOrEmpty(BirthDayMonthTextBox.Text)
      || !String.IsNullOrEmpty(BirthDayDayTextBox.Text))
    {
      // 入力されている
      // 元号が選択されていなければエラーとする
      if (String.IsNullOrEmpty(args.Value))
      {
        args.IsValid = false;
      }
      else
      {
        args.IsValid = true;
      }
    }
    else
    {
      // 入力されていない
      args.IsValid = true;
    }
  }

  // 誕生日の日付チェック
  protected void BirthDayCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
  {
    // 誕生日項目のいずれかが入力されているときのみチェックを行う
    if (BirthDayGengoDropDownList.SelectedIndex > 0
      || !String.IsNullOrEmpty(BirthDayYearTextBox.Text)
      || !String.IsNullOrEmpty(BirthDayMonthTextBox.Text)
      || !String.IsNullOrEmpty(BirthDayDayTextBox.Text))
    {
      // 入力値を取得する
      string gengo = BirthDayGengoDropDownList.SelectedValue;
      string year = BirthDayYearTextBox.Text.Trim();
      string month = BirthDayMonthTextBox.Text.Trim();
      string day = BirthDayDayTextBox.Text.Trim();

      // 入力値が和暦として正しくなければエラー
      string birthDayString = String.Format(
        "{0}{1}年{2}月{3}日", gengo, year, month, day);
      CultureInfo culture = new CultureInfo("ja-JP", true);
      DateTime birthDay;
      if (DateTime.TryParseExact(
            birthDayString
            , "ggy年M月d日"
            , culture
            , DateTimeStyles.None
            , out birthDay))
      {
        args.IsValid = true;
      }
      else
      {
        args.IsValid = false;
      }
    }
    else
    {
      args.IsValid = true;
    }
  }

  // サイトをどこで知ったかチェック
  protected void CheckCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
  {
    // 最低1つは選択されていないとエラー
    if (TVCheckBox.Checked
      || NewsPaperCheckBox.Checked
      || MagazineCheckBox.Checked
      || FriendCheckBox.Checked
      || WebSearchCheckBox.Checked
      || OtherCheckBox.Checked)
    {
      args.IsValid = true;
    }
    else
    {
      args.IsValid = false;
    }
  }

  // サイトの評価チェック
  protected void RadioCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
  {
    // どれか一つ選択されていないとエラー
    if (VeryGoodRadioButton.Checked
      || GoodRadioButton.Checked
      || NormalRadioButton.Checked
      || BadRadioButton.Checked
      || VeryBadRadioButton.Checked)
    {
      args.IsValid = true;
    }
    else
    {
      args.IsValid = false;
    }
  }

  // 送信ボタンクリック
  protected void PostButton_Click(object sender, EventArgs e)
  {
    // 結果のクリア
    ResultLabel.Text = "";

    // チェック結果判定
    if (Page.IsValid)
    {
      // チェック結果エラーなし
      // 入力値を表示
      // 氏名
      ResultLabel.Text += String.Format(
        "氏名:{0} {1}"
        , FamilyNameTextBox.Text
        , FirstNameTextBox.Text);
      ResultLabel.Text += "<br />";
      // フリガナ
      ResultLabel.Text += String.Format(
        "フリガナ:{0} {1}"
        , FamilyNameKanaTextBox.Text
        , FirstNameKanaTextBox.Text);
      ResultLabel.Text += "<br />";
      // メールアドレス
      ResultLabel.Text += String.Format(
        "メールアドレス:{0}"
        , MailAddressTextBox.Text);
      ResultLabel.Text += "<br />";
      // 誕生日
      ResultLabel.Text += String.Format(
        "誕生日:{0}{1}年{2}月{3}日"
        , new String[] { 
          BirthDayGengoDropDownList.SelectedValue 
          , BirthDayYearTextBox.Text 
          , BirthDayMonthTextBox.Text 
          , BirthDayDayTextBox.Text 
          });
      ResultLabel.Text += "<br />";
      // 職業
      ResultLabel.Text += String.Format(
        "職業:{0}"
        , JobListBox.SelectedValue);
      ResultLabel.Text += "<br />";
      // サイトをどこで知ったか
      string checkTexts = "";
      if (TVCheckBox.Checked)
      {
        checkTexts += TVCheckBox.Text;
      }
      if (NewsPaperCheckBox.Checked)
      {
        if (checkTexts != "")
        {
          checkTexts += ", ";
        }
        checkTexts += NewsPaperCheckBox.Text;
      }
      if (MagazineCheckBox.Checked)
      {
        if (checkTexts != "")
        {
          checkTexts += ", ";
        }
        checkTexts += MagazineCheckBox.Text;
      }
      if (FriendCheckBox.Checked)
      {
        if (checkTexts != "")
        {
          checkTexts += ", ";
        }
        checkTexts += FriendCheckBox.Text;
      }
      if (WebSearchCheckBox.Checked)
      {
        if (checkTexts != "")
        {
          checkTexts += ", ";
        }
        checkTexts += WebSearchCheckBox.Text;
      }
      if (OtherCheckBox.Checked)
      {
        if (checkTexts != "")
        {
          checkTexts += ", ";
        }
        checkTexts += OtherCheckBox.Text;
        checkTexts += String.Format(
          "({0})"
          , OtherDetailTextBox.Text);
      }
      ResultLabel.Text += String.Format(
        "サイトをどこで知ったか:{0}"
        , checkTexts);
      ResultLabel.Text += "<br />";
      // サイトの評価
      string ratingText = "";
      if (VeryGoodRadioButton.Checked)
      {
        ratingText = VeryGoodRadioButton.Text;
      }
      if (GoodRadioButton.Checked)
      {
        ratingText = GoodRadioButton.Text;
      }
      if (NormalRadioButton.Checked)
      {
        ratingText = NormalRadioButton.Text;
      }
      if (BadRadioButton.Checked)
      {
        ratingText = BadRadioButton.Text;
      }
      if (VeryBadRadioButton.Checked)
      {
        ratingText = VeryBadRadioButton.Text;
      }
      ResultLabel.Text += String.Format(
        "サイトの評価:{0}"
        , ratingText);
      ResultLabel.Text += "<br />";
      // 評価の理由
      ResultLabel.Text += String.Format(
        "評価の理由:{0}"
        , ReasonTextBox.Text);
      ResultLabel.Text += "<br />";
      // 意見、要望など
      ResultLabel.Text += String.Format(
        "意見、要望など:{0}"
        , FreeTextBox.Text
          .Replace(Environment.NewLine, "<br />"));
    }
  }
}

↑Top