ASP.NET页面循环的实用观点

时间:2013-04-12 17:20:03

标签: 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_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在我的页面中添加了新文字。但是,当我单击按钮时,我只看到字符串“新文本”,但我正在寻找两个文本(“一些长字符串新文本”)。

由于文本已加载到页面,因此我不想在每次按键单击时调用我的数据库。我如何实现这一目标?

我知道这个例子看起来有点奇怪,这是因为我试图给出最小的工作示例。

1 个答案:

答案 0 :(得分:0)

在加载中,当您从数据库中获取值时,将其存储在Session:

Session["textFromDatabase"] = GetTextFromDatabase();

然后在两个地方利用该值。所以,如果你在点击中,你会说:

... Text = Session["textFromDatabase"] + " new text";

现在你可以从数据库中获取值,当它不是回复时,就像你说的一样,但是反复利用它。

而且我很确定,根据你所说的,这是你想要的条件的反转,抛出一个!在它面前:

if (Page.IsPostBack)