关于Button_Click刷新的问题

gzldtec 2011-03-31 09:02:15
添加页面输入数据后,点击button 按钮Button_Click时间验证表单数据。

问题:
输入数据有误则执行 Response.Write("<script language='javascript' type='text/javascript'>alert('error);</script>");
但是会刷新页面,表单输入的内容不见了,有什么办法解决?

...全文
260 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
a6711145 2011-03-31
  • 打赏
  • 举报
回复
但是会刷新页面,表单输入的内容不见了,有什么办法解决?

你的控件不是服务端控件?或者没在<form id="form1" runat=server>标签里面?
a6711145 2011-03-31
  • 打赏
  • 举报
回复
要看你如何验证表单数据了。
如果只是数据格式、大小限制、特殊符号......等等验证
那么就可以用js来验证
<script>function checkData(){...这里写js代码验证数据...}</script>
<asp:button id="sub" runat="server" onclientclick="return checkData()" onclick="xx"/>

如果是需要和服务端信息进行对比验证的话
那么数据需要和服务端做一次交互,所以是会有刷新的。
LZ 可以用 response.write 或者 Page.ClientScript.RegisterStartupScript 等来输出提示。
这样做会让页面刷新一次。
如果不想要刷新,那么就使用Ajax吧
changjiangzhibin 2011-03-31
  • 打赏
  • 举报
回复
使用HTML的Button,就可以

否则使用AJAX
_程序员 2011-03-31
  • 打赏
  • 举报
回复
页面的viewsate设置为true
  • 打赏
  • 举报
回复
Response.Write是服务器端执行的,建议你使用js判断输入数据,然后alert
fanr_forever 2011-03-31
  • 打赏
  • 举报
回复
楼上说的都行 哈哈~~
xmlife 2011-03-31
  • 打赏
  • 举报
回复
你是时间是服务端控件还是客户端,

如客户端控件直接在前端脚本判断,验证错误就返回 return false;

如是服务器控件,在后代码中验证:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
button.Attributes.Add("onclick", "if(验证正确)" + this.ClientScript.GetPostBackEventReference(this.button, null) + "}else{alert('error');return false;}");
}
}
dearzhen 2011-03-31
  • 打赏
  • 举报
回复

//重新载入页面,不会造成页面混乱
public void ShowMsg(string messagest, string url)
{
Response.Write("<script language='javascript'>alert('" + messagest+ "');</script>");
Response.Write("<script language='javascript'>window.location.href='" + url + "';</script>");
}
public void ShowMsg(string messagest)
{
Response.Write("<script language='javascript'>alert('" + messagest+ "');</script>");
}
zzmsl 2011-03-31
  • 打赏
  • 举报
回复
Response.Write("<script language='javascript' type='text/javascript'>alert('error);</script>");

这种做法不怎么好。换一种吧,比如先用js验证然后在提交到服务器验证。
chen_ya_ping 2011-03-31
  • 打赏
  • 举报
回复
Response.Write
这个注册代码不好,会导致页面的样式不准确的。
最好是有
page.clientscript.re.....................
Joop_Song 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zthsn 的回复:]
JQuery可以实现
[/Quote]

直接用JS在前台验证数据,不正确不让提交就行了。。
dearzhen 2011-03-31
  • 打赏
  • 举报
回复

//补充个方法,实现重载
/跳转页面
public void ShowMsg(string messages)
{
Response.Write("<script language='javascript'>alert('" + messagest+ "');</script>");
}

  • 打赏
  • 举报
回复
错误的时候,你直接在前台给个lable,然后错误的时候,直接lable1.Text="error";就行了哎,非要alert干么!
dearzhen 2011-03-31
  • 打赏
  • 举报
回复

protected void btnSave_Click(object sender, EventArgs e)
{
//省略了创建实体类的代码
int result = custManage.AddNewCustomer(cust, fk);//访问数据的方法
if (result > 0)
{
ShowMsg("新客户添加成功!", "../CustomerList.aspx");
}
else
{
ShowMsg("客户添加失败!");
}
}
//跳转页面
public void ShowMsg(string messagest, string url)
{
Response.Write("<script language='javascript'>alert('" + messagest+ "');</script>");
Response.Write("<script language='javascript'>window.location.href='" + url + "';</script>");
}
zthsn 2011-03-31
  • 打赏
  • 举报
回复
JQuery可以实现
yksyuan 2011-03-31
  • 打赏
  • 举报
回复
时间验证经常会出错。
我做过两次。找的正则。。
可是总会导致 button_click失效。
后来干脆 用别的思路代替了
porschev 2011-03-31
  • 打赏
  • 举报
回复

用response方式应该是会刷新的。。

用Page.ClientScript.RegisterStartupScript(this.GetType(), "","<script>alert('error');</script>");
wlf535944903 2011-03-31
  • 打赏
  • 举报
回复
你调用这个方法
wlf535944903 2011-03-31
  • 打赏
  • 举报
回复
要不然用ajax做成无刷新的提交 要不然你用

/// <summary>
/// 提示警告后跳转
/// </summary>
/// <returns></returns>
protected void ClientScriptAlert(string alertText, string href)
{
if (string.IsNullOrEmpty(href))
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + alertText + "');</script>");
}
else
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + alertText + "');location.href='" + href + "';</script>");
}
}

Corporal 2011-03-31
  • 打赏
  • 举报
回复
在客户端验证,不成功不提交。

还一点,你用什么开发,是webform,还是mvc啊

webform下提交后还是有数据的啊

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧