Page_Load イベントで一連のコントロールをロードしています。ただし、ページが読み込まれるたびにこれらのコントロールを再作成する必要があります。つまり、データを別の場所に保存する必要があります。これは面倒です。
protected void Page_Load(object sender, EventArgs e)
{
MyControl control = (MyControl)LoadControl(...);
control.Initialize(GlobalClass.controlData);
//^gives the control the data it had previously.
//Or use ViewState["controlData"] if serializable.
Controls.Add(control);
}
を使用する必要があるように感じますがif (!IsPostBack) {}
、その方法や理由がわかりません。
対照的に、コントロールをマークアップに配置すると、コントロールは持続するように見えます。たとえば、マークアップのボタンは、その Text プロパティへの変更を記憶します (私は思いますか?)。
<asp:Button ID="buttonText" runat="server"
Text="Text Segment" onclick="buttonText_Click" />
マークアップによって追加されたコントロールのように、動的に追加されたコントロールである種の永続性を維持するにはどうすればよいですか? これにより、多くの作業とフラストレーションが軽減されます。
ありがとう。
(私は長い間コーディングを続けてきましたが、ASP.NET をやればやるほど混乱していきます。これは、私が理解した作業方法とは正反対です :-P.)