<%--Confirmation Box--%>
<script type="text/javascript" language="javascript">
function alertbox() {
if (confirm("Are you sure?") == true)
{
document.getElementById('<%= hdnYesNo.ClientID %>').value = "YES";
}
else
{
document.getElementById('<%= hdnYesNo.ClientID %>').value = "NO";
}
}
</script>
如何在C#asp代码中重写此代码?我想要一个带有是或否按钮的确认框。
答案 0 :(得分:10)
protected void Page_Load(object sender, System.EventArgs e)
{
string csName = "PopupScript";
Type csType = this.GetType();
ClientScriptManager csm = Page.ClientScript;
if (!csm.IsStartupScriptRegistered(csType, csName)) {
StringBuilder sb = new StringBuilder();
sb.Append("<script>");
sb.Append("function alertbox() {");
sb.Append("if (confirm('Are you sure?') == true) ");
sb.Append("{");
sb.Append("document.getElementById('" + hdnYesNo.ClientID + "').value = 'YES';");
sb.Append("}");
sb.Append("else");
sb.Append("{");
sb.Append("document.getElementById('" + hdnYesNo.ClientID + "').value = 'NO';");
sb.Append("}");
sb.Append("</script>");
csm.RegisterStartupScript(csType, csName, sb.ToString());
}
}
答案 1 :(得分:2)
你可以这样使用
Page.ClientScript.RegisterStartupScript(this.GetType(), "Confi", "if(confirm('Are you sure?') == true){ document.getElementById('txtValue').value ='YES';}else{document.getElementById('txtValue').value ='NO';}", true);
答案 2 :(得分:1)
你需要javascript,这在代码背后是不可能的。在将页面发送给用户之前,代码隐藏在服务器上运行,javascript在用户的计算机上运行。
如果你想在后面的代码中访问他们的答案(可能和直截了当),你可以使用ajax或者你可以回发。
如果你想在按下.Net asp:按钮控件时弹出这个弹出窗口,那么你可以在控件的“OnClientClick”属性中放置一个javascript函数。
编辑:如果您需要任何上述帮助,请告知我们并提供帮助:)。
EDIT2:由于下面的讨论,我想我应该澄清一下:你可以(显然)在服务器端构建javascript,然后再将它传递给客户端,但你给出的例子不是你应该这样做的情况(这可能是一个好主意的一个例子是一个脚本,它有从数据库中读取的变量或类似的东西,不需要在页面加载之间是动态的)。
答案 3 :(得分:1)
您可以使用ClientScriptManager
类及其方法,例如RegisterClientScriptBlock
。取决于何时您希望javascript执行。
详情请见:
http://msdn.microsoft.com/en-us/library/System.Web.UI.ClientScriptManager_methods.aspx
答案 4 :(得分:0)
另一种选择是在/ View文件夹和用户razor中创建脚本以生成脚本。
然后你可以指向标签中的页面,如
<script src="~/ScriptGenerator/MyScript" />
用于指向公开动作MyScript的控制器ScriptGeneratorController