你的位置:
问答吧
-> .NET
-> 问题详情
ASP.NET 后台程序判断是否弹出确认提示框,取返回值继续操作
[code=C#][/code]
protected void btnLoad_Click(object sender, EventArgs e)
{
string msg = "检测第" + student1.Key.ToString() + "行数据已存在,是否覆盖?'";
if (sId > 0)
{
RegisterStartupScript("hello", "");
if ("确认覆盖")
{
UpdateStudentMethod(cmd, s, sId);
}
else
{
InsertStudentMethod(cmd, s);
}
}
else
{
InsertStudentMethod(cmd, s);
}
}
作者: linanjina
发布时间: 2010-09-30
页面加载时将 student1.Key的值存入前台隐藏域
按钮点击前:
OnClientClick="return doConfirm()"
function doConfirm()
{
var msg = "检测第" + document.getElementById("Hidden1").value+ "行数据已存在,是否覆盖?'";
return window.confirm(msg);
}
作者: q107770540
发布时间: 2010-09-30
服务器 于 客户端 不交互, 服务器是没有办法知道 客户端脚本的操作。
当 客户端操作,弹出对话框时,可以用ajax 发送信息去 服务器端。
----------------------
其实 就是客户端 js弹出 对话框, 根据点击按钮的 不同,用ajax发送不同的数据去 服务器,让服务器判断处理 。
作者: gongsun
发布时间: 2010-09-30
我不是想让他一开始点击就执行弹出对话框,是在foreach里面判断是否存在相同数据,若存在就弹出提示框并且获取用户是否选择了确认按钮,确认则修改,否则跳过,我上面的代码多写了一个else....
作者: linanjina
发布时间: 2010-09-30
引用 2 楼 gongsun 的回复:
服务器 于 客户端 不交互, 服务器是没有办法知道 客户端脚本的操作。
当 客户端操作,弹出对话框时,可以用ajax 发送信息去 服务器端。
----------------------
其实 就是客户端 js弹出 对话框, 根据点击按钮的 不同,用ajax发送不同的数据去 服务器,让服务器判断处理 。
嗯,可以使用该思路,或者你自己定做个页面用于显示确认否与的信息,也可以弄个div来显示然后再根据点击了哪个按钮来分别执行不同的操作
作者: myhope88
发布时间: 2010-09-30
下面是我前几天在另一贴里回复时做的小例子,楼主直接贴到vs2008里就行了
前台:
function MyConfirm() {
if (confirm("确定要继续吗?") == true) {
document.getElementById("hidden1").value = "1";
}
else {
document.getElementById("hidden1").value = "0";
}
form1.submit();
}
οnclick="Button1_Click" />
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ConfirmTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.hidden1.Value == "1")
{
this.MyGo();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
//从数据库中取数据进行判断
//这里简单的改为判断页面上的textbox
if (this.TextBox1.Text == "1")
{
this.ClientScript.RegisterStartupScript(this.GetType(),"ss","");
return;
}
else if (this.TextBox1.Text == "2")
{
this.ClientScript.RegisterStartupScript(this.GetType(), "ss", "");
}
else
{
MyGo();
}
}
//需要继续执行的方法
private void MyGo()
{
this.ClientScript.RegisterStartupScript(this.GetType(), "ss", "");
}
}
}
作者: sywcf
发布时间: 2010-09-30
1楼的方法不错,如果不考虑ajax的话
作者: liffe
发布时间: 2010-09-30
RegisterStartupScript("hello", "");
可以在JS里面做变动,在页面加入一个Input hidden runat=server,然后根据confirm返回的结果来改变hidden的值,js的动作比后台要快,在if的时候可以直接根据if(hidden.value)的值来进行判断,别忘了,用完hidden后,把它给个默认值,以后其他数据再次使用
作者: Rock870210
发布时间: 2010-09-30
这个代码不能写在 btnLoad_Click 里
应该在一个页面初始化加载 或 其他函数里 事先判断是否加载, 不是 点击按钮后 再去判断是否加载客户端提示。。。。
也就是说当你看到页面的时候 页面已经把按钮上 该提示还是不提示 已经弄好了
按钮也是先执行客户端js 然后执行服务器btnLoad_Click 不可能再倒回去
作者: wyq29
发布时间: 2010-09-30
建议建议你用AJAX来做,你这样服务器端实现起来有困难
作者: chen_ya_ping
发布时间: 2010-09-30
前台弹出框时。。。。用AJAX异步提交一个参数做为判断
作者: porschev
发布时间: 2010-09-30
ClientScript.RegisterStartupScript(this.GetType(), "message", " ");
if(Hf.Value.Equals("1"))
{
}
onclientclick="return check();"
作者: wuyq11
发布时间: 2010-09-30
http://topic.csdn.net/u/20100719/11/52583363-5f64-4eea-923b-0af2e6e00e3a.html?34422
作者: wuyq11
发布时间: 2010-09-30
btnLoad_Click事件里的话已经postback到服务器端了,如果再通过RegisterStartupScript弹出确认对话框让用户确认,需要再一次postback,效率差不说,实现起来也非常麻烦。
应该在前台通过js或者ajax向服务端取值并弹出确认框,确认之后再提交。如果是.Net 3.5的话通过webservice和前台页面交互很方便。
正好最近用到这个,给你参考下
JScript code
functionsubmit() {
ExamOnline.Service.ExamService.GetUnAnsweredCount(c, f);
}functionc(r) {if(r>0||confirm("你还有"+r+"道题目没有回答,确定提交吗?"))
{
ExamOnline.Service.ExamService.SubmitCurrentExam(s, f);
}
}functions(r) {if(r!=true) f(r);
__doPostBack('ctl00_P','');//可以改成触发你要的事件}functionf(r) {
Alert('提交失败,请重试。');
}
后台需要建一个webservice
C# code
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。[System.Web.Script.Services.ScriptService]publicclassExamService : System.Web.Services.WebService
{
[WebMethod(EnableSession=true)]publicintGetUnAnsweredCount()
{
....
}
[WebMethod(EnableSession=true)]publicboolSubmitCurrentExam()
{
.....
}
作者: danjiewu
发布时间: 2010-09-30
写了两个ajax互调,后台一个处理方法,搞定
作者: linanjina
发布时间: 2010-09-30
前台页面定义两个js方法,里面东西都一样,只是在点击取消的时候就调用另一个方法这样子,就是循环js,后台定义一个方法接收前台两个js的参数,去判断是否覆盖,如果覆盖的话就执行更新语句,否则就不管了,继续执行下面的判断,每次发现相同的就给ajax返回一个值去判断是否为覆盖,如果是覆盖的话,就调用另一个js,那个js也是一样的,两个方法就这样调来调去。应该可行。不知听懂没?
作者: ZeroJuer
发布时间: 2010-09-30