これは機能しますが、それを行う適切な方法ですか???
[input] ボックスがあるカスタム サーバー コントロールがあります。ASP.NET TextBox を少し模倣したいのですが、完全ではありません。テキストボックスがレンダリングされると、ユーザーが値を選択してその入力ボックスに配置できるJavaScriptがあります。
コントロールにパブリック テキスト プロパティがあります。get/set では、コントロールのビューステートを取得/設定します - その部分は簡単ですが、JavaScript を介してコントロールにデータが入力されると、Text get は実際には呼び出されません。JavaScript を使用してこの公開されたプロパティを設定する適切な方法は何ですか? (または、ユーザーがボックスに入力するだけでも)?
編集: OnInit では、フォームの値に到達することで状態が維持されるようにします。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (HttpContext.Current.Request.Form["MyInputBoxValue"] != "")
{
ViewState["MyInputBoxValue"]
= HttpContext.Current.Request.Form["MyInputBoxValue"];
}
}
次に、値を実際に HtmlTextWrite に戻すには、次のようにします。
protected override void RenderContents(HtmlTextWriter output)
{
// There is an input control here and i set its value property
// like this using the Text internal defined.
output.Write("<input value=" + Text + ">.....
}
ありがとう