我的代码:
protected void btnOk_Click(object sender, EventArgs e)
{
if (txtReportFavorite.Text != string.Empty)
{
//..
}
else
{
Response.Write("<script>alert('Enter Favorite name.')</script>");
// I need to prevent page refresh here.
}
}
如何在else条件下停止刷新页面。感谢。
答案 0 :(得分:1)
你不能。
该代码运行时已经请求了新页面。如果您不进行回发,则该代码将永远不会运行。
如果您想在不进行回发的情况下进行验证,则应该使用客户端代码来进行验证。
答案 1 :(得分:0)
您到达服务器端的事实意味着您的页面已完成到服务器的完整周期并自行刷新。
除非您使用Ajax调用调用此代码。
您还可以通过在按钮周围放置AjaxUpdatePanel来实现此目的,该按钮将在您的客户提交表单时模拟Ajax调用。
答案 2 :(得分:0)
使用验证程序可以轻松实现您显示的功能,因此页面不会回发。
一旦到达服务器,它就无法停止刷新。好吧,至少据我所知。 -Milind
答案 3 :(得分:0)
在您的代码中,在页面加载后放置此
btnOk.Attributes.Add("onclick","return validate();");
你的aspx文件中的有这个脚本
function validate()
{
if(document.getElementById("txtReportFavorite").value == "";
{
alert("Enter Favorite name");
return false;
}
}
答案 4 :(得分:0)
您的页面已经转到服务器端,它已经在回发中正在进行中。
您必须使用客户端代码来防止回发。
答案 5 :(得分:0)
如果只有空文本框需要验证,为什么不使用RequiredFieldValidator? 你可以在客户端做到这一点。
<asp:TextBox runat="server" id="txtReportFavorite" />
<asp:RequiredFieldValidator runat="server" id="txtReportFavorite" controltovalidate="txtName" errormessage="Enter Favorite name!" />
<br />
<asp:Button runat="server" id="btnSubmit" text="Ok" onclick="btn_Click" />
protected void btnSubmitForm_Click(object sender, EventArgs e)
{
if(Page.IsValid) //for secure validation
{
//do something
}
}
答案 6 :(得分:0)
尝试使用RegisterScriptBlock
。
ClientScript.RegisterStartupScript(this.GetType),"","$(document).ready(function(){alert('Enter Favorite name.')});",true);
如果您想从服务器端执行,请执行上述操作。否则已发布许多答案。