1

PHP で設計されたサイトから ASP.net で Web サイトを設計しています。JavaScript を介してフォーム チェックを行い、検証に合格した場合は Ajax を介してすべてのデータを送信します。

コード ビハインドを介して送信ボタンから JavaScript を起動し、返された値を読み取ってから、ポストバックしてデータを保存するか、ユーザーが JavaScript によって示されたフィールドを修正するまで何もしないことは可能ですか?

4

3 に答える 3

1

javascriptで検証を行っている場合、検証に合格するとjavascriptボタンをクリックする非表示の送信ボタンを作成します。

<input type="button" value="validate" onclick="Validate()" />

<asp:Button ID="aspButton" class="aspButton" OnClick="CodeBehindMethod" style="display: none;" />


<script>
function Validate() {
    //if validation passes
    $(".aspButton").click(); //This is the reason for the class on this button, since                       
                             //asp buttons have huge long stupid id names
    //else do some kind of error notification
}

</script>

コードビハインドで検証している場合は、送信ボタンからポストバックを使用してみませんか?

于 2012-10-05T20:31:36.507 に答える
1

.NET では、ボタン コントロールに、任意の js 関数またはコードを入力する onClientClick があります。return false; を追加してください。上記のコードの後、それ以外の場合、.net は完全なポストバックを起動します。

これはハックかもしれませんが、これにも更新パネルを使用することを検討できます。ちょっとした考え。

于 2012-10-05T20:26:43.323 に答える
1

はい。これにはいくつかの方法があります。ハンドラーは超軽量なので好きです。ただし、Javascript をプルして .NET のバリデーターを使用する方が、おそらく作業は少ないでしょう。念のため、ハンドラーの例を次に示します。

public class CheckData : IHttpHandler
{
    public bool IsReusable
    {
        get { return false; }
    }
    public void ProcessRequest(HttpContext context)
    {
        string sInputData = context.Request["input_post_var"];
        context.Response.ContentType = "text/plain";
        if (!String.IsNullOrEmpty(sInputData))
            context.Response.Write("1");
        else
            context.Response.Write("0");
    }
}

これらのいずれかを作成するには、ソリューション内のフォルダーを右クリックし、[新しい項目を追加...] で [ジェネリック ハンドラー] を見つけます。

AJAX.NET を使用することもできますが、実際にはフレームワーク全体が信じられないほど肥大化しているため、できれば避けたいと思います。それはただの好みです。

于 2012-10-05T20:28:19.720 に答える