私はこれを実現する方法を探していましたが、解決策を見つけることができませんでした。あなたのようダイナミックに作成された子で更新パネル内の動的コントロールを更新する
public partial class _Default : System.Web.UI.Page
{
protected string TextToShow
{
get
{
return Session["TextToShow"] == null ? "Original Text" :
Session["TextToShow"].ToString();
}
set { Session["TextToShow"] = value; }
}
protected void Page_Init(object sender, EventArgs e)
{
var lblToChange = new Label
{
ID = "lblToChange",
Text = TextToShow
};
var chkChangeText = new CheckBox
{
ID = "btnChangeText",
Text = "Change Text",
AutoPostBack = true
};
chkChangeText.CheckedChanged += ChkChangeTextClick;
PlaceHolder.Controls.Add(lblToChange);
PlaceHolder.Controls.Add(chkChangeText);
}
private void ChkChangeTextClick(object sender, EventArgs e)
{
var check = (CheckBox) sender;
TextToShow = check.Checked ? "Text Changed" : "Original Text";
udpDynamicControls.Update();
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
:背後
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="udpDynamicControls" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder" runat="server">
</asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
、コードで:私が持っている.aspxのでは
:私は、私は次のようにこれを達成するために持っている私の元のプロジェクトから、問題を単純化チェックボックスが変更されたときにラベルを更新するために何をしようとしているのかを見ることができます。しかし、udpDynamicControls.Update();それが新しい値をとるpage_initイベントは発生しません。私はすでに同様の質問をチェックアウトしましたが、これは別のシナリオだと思います。
私は非常に助けてくれる人には感謝します。悪い英語をお詫びします。
更新プログラムパネルを使用しないでこの機能を実現するには他の方法がありますが、ブラウザでのポーズバックは避けてください。乾杯。 –