【问题标题】:Preserving Button's Text on Postback在回发时保留按钮的文本
【发布时间】:2012-05-03 12:05:27
【问题描述】:

我这辈子都想不通!我想要做的是在第一页加载时将按钮的文本和标签的文本设置为当前时间。但是,当用户单击按钮时,只有标签的文本会更新为当前时间,而按钮的文本仍然是页面首次加载时的时间。我知道我可以用 Ajax 做到这一点,但我知道有办法只使用 IsPostBack 方法来做到这一点。谁能帮帮我?

public partial class TestPage : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)
{

    Button1.Text = "Initial Page Load Time: " + DateTime.Now.ToLongTimeString() + ". (Click to update current time in Label)";
    Label1.Text = "Current Time: " + DateTime.Now.ToLongTimeString();





}

【问题讨论】:

    标签: c# asp.net ispostback


    【解决方案1】:

    向您的页面添加一个 HiddenField,然后将您的代码更改为;

    protected void Page_Load(object sender, EventArgs e)
    {
        if ( !Page.IsPostBack ){
            HiddenField1.Value = "Initial Page Load Time: " + DateTime.Now.ToLongTimeString() + ". (Click to update current time in Label)";
        }
        Button1.Text = HiddenField1.Value;
        Label1.Text = "Current Time: " + DateTime.Now.ToLongTimeString();
    }
    

    HiddenField 值将保留在 PostBack 中,因此您可以从中设置按钮文本。

    【讨论】:

    • 谢谢我已经尝试过这些方法,它们大部分都有效,但是当我单击按钮时,按钮的文本变为“按钮”。我需要按钮的文本保持页面首次加载的时间。
    【解决方案2】:

    在设置文本之前添加这个:

    if (Page.IsPostBack)
       return
    

    【讨论】:

      猜你喜欢
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多