只需在长方法之前更改标签文本即可

本文关键字:标签 文本 方法 | 更新日期: 2023-09-27 18:35:26

它可能很简单,但我无法弄清楚。我在updatePanel中有一个简单的联系表单,当用户按下发送按钮时,在发送之前应该会出现一个标签。完成后,它应该说类似消息发送的内容。

Application.DoEvents() 可以解决问题,但是是的,我们 asp.net...我已经尝试了多线程,但仍然 lblMessageSend 文本更改为"发送电子邮件..请稍候.."消息发送后。除此之外,不是线程安全,仍然不起作用。

protected void btnSend_Click(object sender, EventArgs e)
{
    lblMessageSend.Text = "Sending e-mail.. Please Wait..";
    lblMessageSend.Visible = true;
    ThreadStart t1 = new ThreadStart(SendMessage);
    Thread thr = new Thread(t1);
    thr.Start(); 
}
private void SendMessage()
{
    //do some sending stuff
    lblMessageSend.Text = Resources.strings.quotationMessage;
}

.html

</tr>
     <tr>
    <td>
    </td>
    <td>
        <asp:Button ID="btnSend" runat="server" Text="Send" ValidationGroup="Form" TabIndex="12" OnClick="btnSend_Click" />
    </td>
</tr>
  <tr>
    <td>
    </td>
    <td>
        <asp:Label ID="lblMessageSend" runat="server" Visible="false" Text="<%$ Resources:strings, quotationMessage%>"></asp:Label>
    </td>
</tr>

只需在长方法之前更改标签文本即可

Thx @Black Baron。

         <tr>
            <td>
            </td>
            <td>
                <asp:Button ID="btnSend" runat="server" Text="Send" ValidationGroup="Form" OnClientClick="ChangeLabelText();" TabIndex="12" OnClick="btnSend_Click" />
            </td>
        </tr>
          <tr>
            <td>
            </td>
            <td>
                <asp:Label ID="lblMessageSend" runat="server" Text=""></asp:Label>
            </td>
        </tr>

Javascript:

<script type="text/javascript">
 if (Page_ClientValidate()) { //to check if the validationFields are validated..
                document.getElementById('<%= lblMessageSend.ClientID %>').innerHTML = 'Sending.. Please wait..';
            }
</script>

老实说,我对我仍然必须使用javascript来完成工作这一事实感到有点失望。但它有效,这很重要。