0

コードを WinForm から WinApp に変換しようとしていますが、aspx についてはほとんど知らず、javascript についても何も知りません。

テキストが与えられるテキストボックスをプログラムで作成しました。テキストは、次のような検証メソッドを介して渡されます。

text.Validating += new CancelEventHandler(boolean_Validating);

に行く

    private void boolean_Validating(object sender, CancelEventArgs e)
    {
        TextBox textBox = (TextBox)sender;
        string boolean = textBox.Text;

        string message = null;
        if (!checkBooleanSyntax(boolean, out message))
        {
            Response.Write("Error: " + message);
            e.Cancel = true;

            textBox.Text = message;
        }
    }

ASPX にはパーツの定義がありませんtext.Validating。キャンセル イベント ハンドラを使用してテキストを検証するには、他にどのような方法がありますか?

4

2 に答える 2

0

長い間ステートフルなアプリケーションに慣れてきたようです。Web サーバーはリクエストをキャンセルしません。提供された情報を取得して、応答を送信するだけです。

したがって、テキスト ボックスのテキストを検証する場合は、通常、サーバーに送信するボタンがあり、そのボタン クリック コードが値を取得して検証します。無効な場合は、HTML でページをマークアップするか、いくつかのコントロールを表示してから、その情報をユーザーのブラウザーにレンダリングします。

例:

 <asp:TextBox ID="textName" runat="server" CssClass="someTextYo" />
 <asp:Panel ID="panelError" runat="server" Visible="false">
     You entered bad stuff, yo
 </asp:Panel>
 <asp:Button ID="buttonSubmit" runat="server" Click="buttonSubmit_Click" />

あなたのコードでは:

 protected void buttonSubmit_Click(object sender, EventArgs e)
 {
     if(string.IsNullOrEmpty(textName.Text))
     {
         panelError.Visible = true;
     }
     else
     {
         // Save to Database, whatever
     }
 }

さらに、JavaScript を使用してクライアント側でこれらのコンポーネントを検証できるため、サーバーへの往復の必要がなくなります (ただし、データ サーバー側も検証する必要があります)。たとえば、jQuery の場合:

 $('form').submit(function()
 {
     if($.trim($('.someTextYo').val()) == '')
        return false;

     return true;
 });

を返すフォーム送信コールバックを証明することで、フォームの投稿をキャンセルできますfalse

于 2012-04-16T19:07:11.220 に答える
0

asp.net では、検証コントロールを使用します。クライアント側 (ユーザーがブラウザーで JavaScript を無効にしていない場合) とサーバー側 (ユーザーが js を無効にするだけでなく、すぐにアプリを自由に利用できることを確認できます) でジョブを処理できます)。 .

特定のロジックを使用した特別な検証が必要な場合は、カスタム バリデータ コントロールを自分で作成できます。

このトピックは本の複数の章でカバーされる可能性があるため、ここにすべてを書くことはできませんが、詳細については、 http ://www.w3schools.com/aspnet/aspnet_refvalidationcontrols.asp を参照してください。

http://msdn.microsoft.com/en-us/library/aa479013.aspx

于 2012-04-16T19:05:02.770 に答える