protected void Button1_Click(object sender, EventArgs e)
{
if (count > 100)
{
StringBuilder javascript = new StringBuilder();
javascript.Append(" <script language=\"javascript\" type=\"text/javascript\">");
javascript.Append(" var tmp = confirm(\"No:Of Records exceeds 1000.Please confirm you want to continue\");");
javascript.Append("if (tmp)");
javascript.Append("{document.getElementById(\" <%=TextBox1.ClientID%>\").value=\"1\"; alert(document.getElementById(\"<%=TextBox1.ClientID %>\").value);}");
javascript.Append(" </script>");
ClientScript.RegisterStartupScript(GetType(), "recordscript", javascript.ToString(), false);
return;
}
}
这里我想通过单击按钮事件来设置文本框的值,并且条件为真。所以我无法从源调用该函数。实际上该函数被调用,但文本框值没有设置..我真的不知道了解问题出在哪里..
最佳答案
protected void Button1_Click(object sender, EventArgs e)
{
if(count>100)
{
StringBuilder javascript = new StringBuilder();
javascript.Append(" <script language=\"javascript\" type=\"text/javascript\">");
javascript.Append(" var tmp = confirm(\"No:Of Records exceeds 1000.Please confirm you want to continue\");");
javascript.Append("if (tmp)");
javascript.Append("{document.getElementById('" + TextBox1.ClientID + "').value=\"1\"; alert(document.getElementById('" + TextBox1.ClientID+ "').value);}");
javascript.Append(" </script>");
ClientScript.RegisterStartupScript(GetType(), "recordscript", javascript.ToString(), false);
return;
}
}
}
您需要将 TextBox1.ClientID 与 JavaScript 字符串连接起来。您拥有的代码将按原样渲染到页面,使用 View 源查看渲染页面的输出,您将看到字符串“<%= TextBox1.ClientID =%>”,而不是预期的 ID。请记住,内联显示表达式 <%= =%> 相当于服务器 Response.Write()。
关于javascript - 这段 ASP.NET 代码有什么问题吗?文本框值未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219639/