ナビゲーション リンクのスキップ
 新機能 の展開 新機能
 InputMan連携 の展開 InputMan連携
 マルチタッチ機能 の展開 マルチタッチ機能
 セル、行、列、ヘッダ の展開 セル、行、列、ヘッダ
 シート の展開 シート
 スタイル の展開 スタイル
 選択 の展開 選択
 セル型 の展開 セル型
 編集 の縮小 編集
 ソート の展開 ソート
 フィルタリング の展開 フィルタリング
 グループ化 の展開 グループ化
 ページング の展開 ページング
 スクロール の展開 スクロール
 データ連結 の展開 データ連結
 階層表示 の展開 階層表示
 コマンドバー の展開 コマンドバー
 チャート の展開 チャート
 数式 の展開 数式
 インポート/エクスポート の展開 インポート/エクスポート
 クライアント側スクリプト の展開 クライアント側スクリプト

サーバーサイド検証

検証コントロールを使用してサーバー側の検証を有効にできます。検証機能を有効にするにはセル型で提供されているAllowServerValidatorsプロパティをtrueに設定し、 ボタンコントロールが押されポストバックが起きるタイミングで行われます。
項目 検証内容
ID 1000~1999以外の入力がエラーになります。この列に対する検証はRangeValidatorを使用しています。
氏名 ブランクがエラーになります。この列に対する検証はRequiredFieldValidatorを使用しています。
氏名(カタカナ) カタカナ以外を入力するとエラーになります。この列に対する検証はRegularExpressionValidatorを使用しています。
入社日 日付として認識できない文字列および2000年より前の日付がエラーになります。この列に対する検証はCustomValidatorを使用しています。

 
 ID氏名カタカナ入社日メールアドレスパスワード
11001風間佳乃カザマヨシノ2001/08/19yoshino_kazama@dvrvqkdgjh.ihkaz79313
21002中川雪子ナカガワユキコ2006/11/17onakagawa@zfjtagjj.ufgnak22276
31003重田栄治シゲタエイジ2012/02/06eijishigeta@drouk.mgsige47855
41004牧舞子マキマイコ2003/03/07Maiko_Maki@piaq.comak24396
51005森田理緒モリタリオ2007/11/08rio07101@yjixuhlkxe.ckmori35724
61006毛利音羽モウリオトハ2001/03/18amouri@npgcw.tbzmouri79794
71007平尾達行ヒラオタツユキ2008/09/11Tatsuyuki_Hirao@vtzezb.sfriz.cydhirao56429
81008藤島百合子フジシマユリコ2001/02/23yurikofujishima@vvngva.rghhiji5215
91009福永晴奈フクナガハルナ2004/04/28Haruna_Fukunaga@cajoi.hctomi83136
101010相馬智子ソウマトモコ2006/04/20osouma@cdlhqz.rhy.vbsou66502
   
 

ソースコード

別ウィンドウで表示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class servervalidation : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) return;

        // SPREADの設定
        InitSpread(FpSpread1);

        // シート設定
        InitSpreadStyles(FpSpread1.Sheets[0]);
    }

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        spread.CssClass = "spreadStyle";
        spread.UseClipboard = false;

        // データ連結
        System.Data.DataSet ds = new System.Data.DataSet();
        ds.ReadXml(MapPath("../App_Data/dataimvalidators.xml"));
        spread.DataSource = ds;
    }

    private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
    {
        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%");

        // 列幅の設定
        sheet.Columns[0].Width = 70;
        sheet.Columns[1].Width = 120;
        sheet.Columns[2].Width = 120;
        sheet.Columns[3].Width = 120;
        sheet.Columns[4].Width = 180;
        sheet.Columns[5].Width = 140;

        // 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;

        RangeValidator RangeValidator1 = new RangeValidator();
        RangeValidator1.EnableClientScript = false;
        RangeValidator1.Type = ValidationDataType.Integer;
        RangeValidator1.MaximumValue = "1999";
        RangeValidator1.MinimumValue = "1000";
        RangeValidator1.ErrorMessage = "1000~1999の間で入力してください";

        // RangeValidatorを使用
        FarPoint.Web.Spread.TextCellType tc1 = new FarPoint.Web.Spread.TextCellType();
        tc1.AllowServerValidators = true;
        tc1.Validators.Add(RangeValidator1);
        sheet.Columns[0].CellType = tc1;


        RequiredFieldValidator RequiredFieldValidator1 = new RequiredFieldValidator();
        RequiredFieldValidator1.EnableClientScript = false;
        RequiredFieldValidator1.ErrorMessage = "ブランクは許可されません";

        // RequiredFieldValidatorを使用
        FarPoint.Web.Spread.TextCellType tc2 = new FarPoint.Web.Spread.TextCellType();
        tc2.AllowServerValidators = true;
        tc2.Validators.Add(RequiredFieldValidator1);
        sheet.Columns[1].CellType = tc2;


        RegularExpressionValidator RegularExpressionValidator1 = new RegularExpressionValidator();
        RegularExpressionValidator1.EnableClientScript = false;
        RegularExpressionValidator1.ValidationExpression = "[ァ-ヴ]*";
        RegularExpressionValidator1.ErrorMessage = "全角カタカナを入力してください";

        // RegularExpressionValidatorを使用
        FarPoint.Web.Spread.TextCellType tc3 = new FarPoint.Web.Spread.TextCellType();
        tc3.AllowServerValidators = true;
        tc3.Validators.Add(RegularExpressionValidator1);
        sheet.Columns[2].CellType = tc3;


        // CustomValidatorを使用
        FarPoint.Web.Spread.DateTimeCellType dc1 = new FarPoint.Web.Spread.DateTimeCellType();
        dc1.AllowServerValidators = true;
        dc1.Validators.Add(CustomValidator1);
        dc1.ErrorMessage = "日付として認識できません";
        sheet.Columns[3].CellType = dc1;
    }

    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        // 2000年以降か判定
        DateTime dt = new DateTime(2000, 1, 1);
        if (dt > DateTime.Parse(args.Value))
        {
            args.IsValid = false;
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        FpSpread1.SaveChanges();
    }
}

Partial Class servervalidation
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' SPREADの設定
        InitSpread(FpSpread1)

        ' シート設定
        InitSpreadStyles(FpSpread1.Sheets(0))
    End Sub

    Private Sub InitSpread(ByVal spread As FarPoint.Web.Spread.FpSpread)
        spread.CssClass = "spreadStyle"
        spread.UseClipboard = False

        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/dataimvalidators.xml"))
        spread.DataSource = ds
    End Sub

    Private Sub InitSpreadStyles(ByVal sheet As FarPoint.Web.Spread.SheetView)
        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnFooter.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%")

        ' 列幅の設定
        sheet.Columns(0).Width = 70
        sheet.Columns(1).Width = 120
        sheet.Columns(2).Width = 120
        sheet.Columns(3).Width = 120
        sheet.Columns(4).Width = 180
        sheet.Columns(5).Width = 140

        ' 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle

        Dim RangeValidator1 As New RangeValidator()
        RangeValidator1.EnableClientScript = False
        RangeValidator1.Type = ValidationDataType.Integer
        RangeValidator1.MaximumValue = "1999"
        RangeValidator1.MinimumValue = "1000"
        RangeValidator1.ErrorMessage = "1000~1999の間で入力してください"

        ' RangeValidatorを使用
        Dim tc1 As New FarPoint.Web.Spread.TextCellType()
        tc1.AllowServerValidators = True
        tc1.Validators.Add(RangeValidator1)
        sheet.Columns(0).CellType = tc1


        Dim RequiredFieldValidator1 As New RequiredFieldValidator()
        RequiredFieldValidator1.EnableClientScript = False
        RequiredFieldValidator1.ErrorMessage = "ブランクは許可されません"

        ' RequiredFieldValidatorを使用
        Dim tc2 As New FarPoint.Web.Spread.TextCellType()
        tc2.AllowServerValidators = True
        tc2.Validators.Add(RequiredFieldValidator1)
        sheet.Columns(1).CellType = tc2


        Dim RegularExpressionValidator1 As New RegularExpressionValidator()
        RegularExpressionValidator1.EnableClientScript = False
        RegularExpressionValidator1.ValidationExpression = "[ァ-ヴ]*"
        RegularExpressionValidator1.ErrorMessage = "全角カタカナを入力してください"

        ' RegularExpressionValidatorを使用
        Dim tc3 As New FarPoint.Web.Spread.TextCellType()
        tc3.AllowServerValidators = True
        tc3.Validators.Add(RegularExpressionValidator1)
        sheet.Columns(2).CellType = tc3


        ' CustomValidatorを使用
        Dim dc1 As New FarPoint.Web.Spread.DateTimeCellType()
        dc1.AllowServerValidators = True
        dc1.Validators.Add(CustomValidator1)
        dc1.ErrorMessage = "日付として認識できません"
        sheet.Columns(3).CellType = dc1
    End Sub

    Protected Sub CustomValidator1_ServerValidate(source As Object, args As ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
        ' 2000年以降か判定
        Dim dt As New DateTime(2000, 1, 1)
        If dt > DateTime.Parse(args.Value) Then
            args.IsValid = False
        End If
    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        FpSpread1.SaveChanges()
    End Sub
End Class

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="servervalidation.aspx.cs" Inherits="servervalidation" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" Runat="Server">
<style type="text/css">
.imvalidatorstable
{ 
	width: 660px;
}
.imvalidatorstable td
{ 
	border: solid 1px #dfdfdf;
	font-size: 80%;
}
</style>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <table class="imvalidatorstable" border="0"  rules="none">
        <tr>
            <td style="width:120px; background-color: #72558d; color: #efefef;">
                項目
            </td>
            <td style="width:360px; background-color: #72558d; color: #efefef;">
                検証内容
            </td>
        </tr>
        <tr>
            <td>
                ID
            </td>
            <td>
                1000~1999以外の入力がエラーになります。この列に対する検証はRangeValidatorを使用しています。
            </td>
        </tr>
        <tr>
            <td>
                氏名
            </td>
            <td>
                ブランクがエラーになります。この列に対する検証はRequiredFieldValidatorを使用しています。
            </td>
        </tr>
        <tr>
            <td>
                氏名(カタカナ)
            </td>
            <td>
                カタカナ以外を入力するとエラーになります。この列に対する検証はRegularExpressionValidatorを使用しています。
            </td>
        </tr>
        <tr>
            <td>
                入社日
            </td>
            <td>
                日付として認識できない文字列および2000年より前の日付がエラーになります。この列に対する検証はCustomValidatorを使用しています。
            </td>
        </tr>
    </table>
    <br />
    <asp:Button ID="Button1" runat="server" Text="ポストバック" OnClick="Button1_Click" />&nbsp;
    <FarPoint:FpSpread ID="FpSpread1" runat="server">
        <CommandBar BackColor="Control" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark">
        </CommandBar>
        <Sheets>
            <FarPoint:SheetView SheetName="Sheet1">
            </FarPoint:SheetView>
        </Sheets>
    </FarPoint:FpSpread>
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="2000年以降を入力してください" ForeColor="White" OnServerValidate="CustomValidator1_ServerValidate" EnableClientScript="False"></asp:CustomValidator>
</asp:Content>