0

C#でテキストボックスの「クリック」イベントを作成したかった(何もないため)。

だから、このように

protected void Page_Load(object sender, EventArgs e)
{
    if (Request["__EVENTARGUMENT"] != null && Request["__EVENTARGUMENT"] == "txt1OnClick")
    {
        txt1_Click();
    }

    txt1.Attributes.Add("onclick", this.Page.ClientScript.GetPostBackEventReference(txt1, "txt1OnClick"));
}

private void txt1_Click()
{
    ImageMap1.ImageUrl = "guide/1.jpg";
}

次に、ページをリロードせずに画像をロードしたいと考えました。

だから私はAJAX UpdatePanelコントロールを使用しましたが、これはうまくいきました

protected void Button1_Click(object sender, EventArgs e)
{
    ImageMap1.ImageUrl = "guide/1.jpg";
}

しかし、私が作成したイベントではそうではありません。コンパイラは、新しいイベントを実際のイベントまたは私が把握できなかったものとして識別しないためです。

「外部ボタンを使用して UpdatePanel コントロールを更新する」の手順 8 に従って、button1_click イベントを追加しました。

このオプションでは、テキストボックスのクリック イベントは表示されません。

テキストボックス

私の質問は、このイベントをSystem.Web.UI.WebControls.TextBoxクラス内に追加する方法、または上記のオプション内でこのイベントを表示する方法はありますか?

更新パネルのトリガー内にテキストボックスのクリックイベントを含めることができるようにします。

4

1 に答える 1

0

の Click イベントを作成しようとするとTextBox、ユーザーがテキストボックスをクリックするたびに、サーバーへのポストバックがトリガーされます (イベント処理の一部として何かを行う必要があるかどうかを評価する場合でも)。これは非常に非効率的です。JavaScript を使用してブラウザーでクリックを処理してから、クライアント側のロジックを使用して UpdatePanel をトリガーする必要があります。

これにより、必要な場合はサーバーへの呼び出しをトリガーできますが、不要な場合は回避できます。サーバー側のイベント ハンドラーがある場合、ユーザーがTextBox.

__doPostBack()クライアント側で を使用しUpdatePanelてポストバックを実行することについて、このリンク (およびその他) を読むことができます。

http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

于 2012-10-22T04:12:17.667 に答える