C# ASP.NET的实用观点';s页面周期
我的表格如下:C# ASP.NET的实用观点';s页面周期,c#,asp.net,webforms,C#,Asp.net,Webforms,我的表格如下: <form id="form1" runat="server"> <div> <asp:PlaceHolder ID="plcHolder" runat="server"> </asp:PlaceHolder> <asp:Button ID="btnSubmit" Text="submit" runat="server" onclick="btnSubmit_Clic
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="plcHolder" runat="server">
</asp:PlaceHolder>
<asp:Button ID="btnSubmit" Text="submit" runat="server"
onclick="btnSubmit_Click" />
</div>
</form>
Page\u Load()
从数据库中获取一个长字符串
protected void btnSubmit_Click(object sender, EventArgs e)
{
this.plcHolder.Controls.Add(new Label() { Text = "new text" });
}
我的按钮
将新文本添加到我的页面。但是,当我单击按钮时,我只看到字符串“newtext”,但我同时查找这两个文本(“一些长字符串newtext”)
我不想在每次单击按钮时调用我的数据库,因为文本已经加载到页面中。我如何做到这一点
我知道这个示例看起来有点奇怪,因为我试图给出一个最小的工作示例。在加载中,当您从数据库获取值时,将其存储在会话中:
Session["textFromDatabase"] = GetTextFromDatabase();
然后利用这两个地方的价值。因此,如果你在点击中,你会说:
... Text = Session["textFromDatabase"] + " new text";
现在您可以从数据库中获取价值,而不是像您所说的那样返回一次,但要反复利用它
我很确定,根据你说的,这是你想要的条件的倒数,抛出一个!在它前面:
if (Page.IsPostBack)
OP正在添加一个新控件,而不是附加到现有控件。我需要在我的实际案例中使用新控件,正如@Tim S.Van Haren已经提到的。
FetchDataFromDatabase()
是否实际返回字符串?是否尝试在Page.IsPostBack块中放置断点以确保执行时没有错误?@BradM,否,它获取用户定义对象的列表。我正在用新控件填充占位符
。请参阅我的答案。从本质上讲,如果要避免重复访问数据库,必须“帮助”页面保持其状态。
if (Page.IsPostBack)