- - PR -
UpdateProgressに配置したコントロールの取り扱いについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-04-03 14:24
VisualStudio2008
C# ASP.NET AJAX の環境で開発を行っています。 UpdateProgressを画面上に配置してその中にButtonやTextBoxなどのコントロールを 配置しました。 以下はそのASPXの抜粋です。 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </ContentTemplate> </asp:UpdatePanel> <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" AssociatedUpdatePanelID="UpdatePanel1"> <ProgressTemplate> <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ProgressTemplate> </asp:UpdateProgress> VisualStudioでレイアウトやイベントロジックを定義したのですが、思うように動きません。 まずは、UpdateProgress内に配置したButton2_Clickのイベントロジックですが、 デザイン画面で該当するボタンをダブルクリックすると、上記のようにイベント 呼び出し部分が生成されたのですが、UpdateProgressの表示中にこのボタンをクリック しても、何も起こりません。 PostBackの最中なんだから当然のようにも思いますが・・・・ 次に、UpdateProgress内のTextBox2の値をフォームのロード時に編集するような ロジックを記述しようと思い、以下のようなコードを書きました。 protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = "ABC"; TextBox2.Text = "DEF"; } すると、TextBox2.Text = "DEF";の行がコンパイルエラーになりました。 TextBox2自体をロジックのほうからは認識できないようです。 MSDNには以下のような記述があります。 「テンプレートには、HTML とマークアップを含めることができます」 これが、何を意味するのかが、いまいちピンと来ていないのですが・・・ UpdateProgress内には、静的なテキストとかイメージを配置するのが一般的で コントロールについても配置できるが、その操作は全てJavaScriptで実施する 必要があるという事なのでしょうか? ご存知の方がいらっしゃいましたらよろしくお願いします。 | ||||
|
投稿日時: 2009-04-04 12:10
(TextBox)UpdateProgress1.FindControl("TextBox2") で参照できます。 | ||||
|
投稿日時: 2009-04-07 09:36
べるさん。
回答ありがとうございます。 そうですよね。 FindControlを使用すれば出来るんですが、これは生成されたHTMLから参照する と言う事になって、単純にTextプロパティを操作するのとは、異なる点が 引っかかってたんです。 HTML上にはIDがついたものが展開しているので、この場合だけ何故なのかと 疑問に思ったんですが・・・・ |
1