[英]ASP.NET JavaScript return after button click
aspx中的代碼:
<asp:HiddenField ID="hf0" Value="No Value" runat="server"/>
<asp:TextBox ID="TextBox0" runat="server"></asp:TextBox>
<asp:Label ID="Label0" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Validate" runat="server" Text="Validate" OnClick="Validate_Click"/>
C#中的代碼:
protected void Validate_Click(object sender, EventArgs e)
{
// Set JavaScript
string myFn = "function Textbox0_validate(str) {"
+ "if (str.length < 5) { return 'Invalid, at least 5 chars!';} return 'Passed';}"
+ "function validateAll() {document.getElementById('hf0').value =Textbox0_validate('"+ TextBox0.Text +"');}";
Page.Header.Controls.Add(new LiteralControl("<script type='text/javascript'>" + myFn + "</script>"));
// Start JavaScript
Page.ClientScript.RegisterStartupScript(GetType(), "validateAll", "validateAll();", true);
// Read results
Label0.Text = hf0.Value;
}
目的是功能“ Textbox0_validate”,因為它可以驗證“ Textbox0”中的文本。 因此,當我單擊按鈕時,“ Label0”應顯示驗證的結果。(通過或無效。。。)而且我想保持動態,這就是為什么我從后面的代碼中添加這些JavaScript。 (而且,我不想使用RegEx)
代碼的問題是,當我單擊按鈕“驗證”時,它不會更新“ hf0”的值。 然而; 如果我第二次單擊它,則將顯示第一次的結果。 因此,基本上,我需要單擊按鈕兩次以獲得所需的驗證結果。 我想PostBack存在一些問題,請幫忙。
好吧,我有點解決我的問題。 我在Page_Load
添加了Label0.Text = hf0.Value
。 然后在JavaScript中,我添加了__doPostBack('','');
因此,JavaScript完成后,它將回發,並且該值將在Page_Load
得到更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.