0

ViewState と AutoPostBack を利用できるカスタム サーバー コントロールを作成しようとしましたが、うまくいきませんでした。注意が必要なのは、私のコントロールが HTML と JavaScript の組み合わせであることです。レンダリングされた出力の良い例を次に示します (私は JS ライブラリも使用しているため、省略された例です)。

<input type="text" id="txt" />
<script>
$(function() {
    $("#txt").TurnMeIntoDatePicker({
        value: new Date(1950,1,1)
    });
});
</script>

この例では、入力の「id」と JS 関数の「値」をパラメーターとして公開する必要があります (そして、それらの値は ViewState によるポストバック後に保持されます)。私が見たすべての例では、パラメーターを入力要素に割り当てることができますが、JS のカスタム文字列には割り当てられません。また、AutoPostBack 関数をどのように追加できるかを知りたいのですが、それはただの肉汁です!

4

1 に答える 1

2

IPostBackDataHandler を実装していますか? これを使用して、ポストバック時に入力フィールドから値を取得できます。また、サンプルでは入力フィールドに名前が表示されません...値を正しくポストバックするには、名前を出力する必要があります。ここでサンプルをチェックしてください...

http://msdn.microsoft.com/en-us/library/system.web.ui.ipostbackdatahandler.aspx

Page.ClientScript.GetPostBackEventReference(...)AutoPostBack を実行するために使用できます。たとえば、値が変更されたときにポストバックしたい場合は、次のようにレンダリングできます。

protected override void Render(HtmlTextWriter writer)
{
    string content = string.Format("<input type=\"text\" id=\"txt\" onchange=\"{0}\" />", Page.ClientScript.GetPostBackEventReference(this, null));
    writer.Write(content);
}
于 2013-04-19T01:48:44.507 に答える