我的表格如下:
<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>
这是我的代码:
protected string FetchDataFromDatabase()
{
return "some long string";
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.plcHolder.Controls.Add(new Label() { Text = FetchDataFromDatabase() } );
}
}
Page_Load()
从数据库中获取一个长字符串。
protected void btnSubmit_Click(object sender, EventArgs e)
{
this.plcHolder.Controls.Add(new Label() { Text = "new text" });
}
我的Button
在我的页面中添加了新文字。但是,当我单击按钮时,我只看到字符串“新文本”,但我正在寻找两个文本(“一些长字符串新文本”)。
由于文本已加载到页面,因此我不想在每次按键单击时调用我的数据库。我如何实现这一目标?
我知道这个例子看起来有点奇怪,这是因为我试图给出最小的工作示例。
答案 0 :(得分:0)
在加载中,当您从数据库中获取值时,将其存储在Session:
中Session["textFromDatabase"] = GetTextFromDatabase();
然后在两个地方利用该值。所以,如果你在点击中,你会说:
... Text = Session["textFromDatabase"] + " new text";
现在你可以从数据库中获取值,当它不是回复时,就像你说的一样,但是反复利用它。
而且我很确定,根据你所说的,这是你想要的条件的反转,抛出一个!在它面前:
if (Page.IsPostBack)