Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET的实用观点';s页面周期_C#_Asp.net_Webforms - Fatal编程技术网

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)