質問

テキストボックスの月/年を選択するために使用されるポップアップを作成しようとしています。私はそれが動作しているようなものですが、フォームを送信するときにテキストボックスから読み込もうとすると、空の文字列が返されます。ただし、ページ上で視覚的には、スクリーンショットに表示される[完了]ボタンをクリックすると、結果が表示されます。

http://i27.tinypic.com/2eduttx.png -スクリーンショットですポップアップの

テキストボックス/ポップアップ全体をWebユーザーコントロール内にラップしました

コントロールのコードは次のとおりです

コードビハインド

ASPページ

次に、ボタンクリックイベントでTextboxから次を読み取ります

((TextBox)puymcStartDate.FindControl("txtDate")).Text

問題を解決する方法の提案はありますか?

役に立ちましたか?

解決

ビューステートからの値ではなく、フォームに投稿された値を読み取る必要がある場合があります。これを処理するコードには次のメソッドがあります。

以下のコードは、リクエストヘッダーの値を取得して(ポストバックで)コントロールを設定/更新します。問題は、ASP.NET Ajaxコントロールを使用する場合、コントロールに更新が登録されないため、ビューステートが変更されないことです(私は思う)。とにかく、これは私のために働く。

protected void btnDone_Click(object sender, EventArgs e)
{
    LoadPostBackData();
    // do your other stuff
}

// loads the values posted to the page via form postback to the actual controls
private void LoadPostBackData()
{
    LoadPostBackDataItem(this.txtYear);
    LoadPostBackDataItem(this.txtDate);
    // put other items here if needed
}

// loads the values posted to the page via form postback to the actual controls
private void LoadPostBackDataItem(TextBox control)
{
    string controlId = control.ClientID.Replace("_", "<*>quot;);
    string postedValue = Request.Params[controlId];
    if (!string.IsNullOrEmpty(postedValue))
    {
        control.Text = postedValue;
    }
    else
    {
        control.Text = null; // string.Empty;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top