如何添加Confirm消息框?
看了一些资料,都是给Button添加Confirm消息框。我现在想要一个没有Button触发的的Confirm消息框,它可能是通过判断一个函数的返回值来自动弹出的Confirm消息框。这样可行吗?请各位高手指点! 问题点数:20、回复次数:47Top
1 楼hanbb1982(粤饶字号@0768)回复于 2006-06-01 09:51:23 得分 1
response.write("<script>return Confirm("test")</script>")Top
2 楼super_grace(琦琦)回复于 2006-06-01 10:00:47 得分 0
好像不行啊,兄弟,我一运行程序都死翘翘了。你肯定这样可以吗?
再有更正一下这句话:Response.Write("<script>return Confirm('test');</script>")Top
3 楼lazyfish(呆呆虫)回复于 2006-06-01 10:12:46 得分 1
Button.Attributes["onclick"] = "if(confirm('are you sure?'))";Top
4 楼jijl2001(jijl2001)回复于 2006-06-01 10:13:27 得分 0
楼上正解Top
5 楼super_grace(琦琦)回复于 2006-06-01 10:14:22 得分 0
补充一点:弹出Confirm消息框后,我还想抓到用户的选择信息,即当选择确定的时候我会执行一定的操作。谁知道该怎么做呢?Top
6 楼super_grace(琦琦)回复于 2006-06-01 10:17:51 得分 0
呆呆虫:
我并不是想要由button触发的Confirm,你再看一下我的问题吧。Top
7 楼zjysky(音乐啤酒)回复于 2006-06-01 10:52:36 得分 1
response.write("<script language=javascript>return Confirm("test")</script>")
Top
8 楼super_grace(琦琦)回复于 2006-06-01 11:08:15 得分 0
这样也不行,没有任何反应呢,都没有弹出Confirm消息框。Top
9 楼super_grace(琦琦)回复于 2006-06-01 14:15:15 得分 0
好像大家对这个问题没什么解决的办法。
我想了个笨的办法是这样:既然Confirm只能由Button触发,那我就把一个隐藏的Button放在页面上等待触发。现在的问题就变成了,我并不能真的Click那个隐藏的Button,而直接调用它的Click事件也不行,因为那样就等于根本没有弹出Corfirm让用户选择,而是直接默认用户选择为‘确定’了。所以,我觉得唯一的办法就是通过改变Button的属性值(比如Clicked什么的),让它得到触发,从而调用Click事件。可是找来找去,并没有发现类似Clicked的属性,事情又陷入困境了。
恳请高手回答,我该怎么做呢?我想实现的这个能做到吗?Top
10 楼heyidan(gopee)回复于 2006-06-01 14:37:43 得分 1
把confirm("sfdsfsdf","ksdfj")函數添加到要進行判斷的if語句裏即可,非常之easy也Top
11 楼super_grace(琦琦)回复于 2006-06-01 14:46:50 得分 0
楼上的兄弟能写个示范的例子吗?感激ing……Top
12 楼kolosi(小丑巴其)回复于 2006-06-02 09:18:36 得分 0
if(confirm('are you sure?'))
不就是么?
confirm这个函数返回的是个bool,很容易就判断出来了吧。
你要把他加在什么地方啊。Top
13 楼super_grace(琦琦)回复于 2006-06-02 09:38:52 得分 0
confirm不是javascrip的函数吗?不能直接用吧。
我想这么用,请看:
private void Btn_del_Click(object sender, System.EventArgs e)
{
CheckBox chk;
foreach(DataGridItem dgi in DGrd.Items )
{
chk=(CheckBox)dgi.Cells[0].FindControl("Chk_del");
if(chk.Checked==true)
{
string Cname = dt.Rows[DGrd.CurrentPageIndex*DGrd.PageSize +dgi.ItemIndex].ItemArray[0].ToString();
if(cs.Get_Appointed_Item(Cname).InUse == false)//想要删除的Item的使用状态是“未使用”,则删除
{
cs.Del_Item(Cname);
}
else//若要删除的Item已经被使用,则提示用户,并由用户再次确认是否删除Item
{
if(Confirm("Item已经被使用,一旦删除****,是否还要删除所选的Item?"))
{
cs.Del_Item(Cname);
}
}
}
}
}
但是这样使用Confirm(“×××”)根本不行,编译时会提示"Confirm在类或命名空间“×××××”中不存在"。还请高手指定,应该怎么用?Top
14 楼hui1202(骨灰)回复于 2006-06-02 09:42:53 得分 0
。。。。comfirm是脚本语言Top
15 楼kissdeath(落叶飘香)回复于 2006-06-02 09:46:04 得分 2
if(a())
Response.write("<script language=javascript>return confirm("test")</script>")
其中a()是你的函数Top
16 楼kissdeath(落叶飘香)回复于 2006-06-02 09:48:50 得分 0
更正:
if(a())
Response.write("<script language=javascript>return confirm('test');</script>")
其中a()是你的函数Top
17 楼kissdeath(落叶飘香)回复于 2006-06-02 09:50:33 得分 0
二次更正
if(a())
Response.write("<script language=javascript>confirm('test');</script>")
其中a()是你的函数
Top
18 楼kolosi(小丑巴其)回复于 2006-06-02 09:52:21 得分 0
这样肯定不行,你这个程序的逻辑有问题。
要么你就让客户1条1条的删除。
要么你就所有记录一起check。
你这么做能不能实现不说,客户肯定会烦死的。
如果非要这么做的话,那就用js来一起check,然后把check的结果一起传回去。Top
19 楼lcddjyy(鲁哆哆)回复于 2006-06-02 10:03:09 得分 0
学习中!Top
20 楼zhangxiaopin(zxp)回复于 2006-06-02 10:04:59 得分 2
//*****例子,用户在操作某一页面里,用户保存数据成功时,用可能选择查看才保存的数据,以便数据保存的正确性,有可能不查看。
//*****后台调用,前台函数
//*****javascript math
function SeeUserCommentInfo(varurl)
{
if(window.confirm("请确认是否查看用户信息!")==false) return false;
window.open(varurl,"onices","width=200,height=400");
}
//*****cs code
page.registerstartscript("onclick","<script>SeeUserCommentInfo('frmlist.aspx');</script>");Top
21 楼super_grace(琦琦)回复于 2006-06-02 10:09:11 得分 0
kolosi(小丑巴其) :
因为我要删除的Item数量极其有限,所以不必考虑客户烦的问题了。
我现在最主要的问题在于,我不知道该如何调用一个不需要Button触发的Confirm消息框,因为我在删除操作之前,必须再次确认用户的意图,避免他的误操作。Top
22 楼chentianfen(yi)回复于 2006-06-02 10:09:12 得分 0
楼上所说的,都行Top
23 楼super_grace(琦琦)回复于 2006-06-02 10:14:47 得分 0
kissdeath(落叶飘香):
你的意思是,我先执行了我的函数,再弹出Confirm消息框,是吗?
这样并不是我想要的结果。
我是想先让用户确认,如果他“确定”了,我再执行我的函数,即删除操作。Top
24 楼super_grace(琦琦)回复于 2006-06-02 10:21:53 得分 0
zhangxiaopin(zxp) :
你是自己写了一个javascrip函数,然后onclick的时候触发调用,是吧?
我也知道这个方法可行,但它不是我需要的,因为我不可能通过任何控件来触发调用Confirm等的函数。如果要真能那样,问题就简单了。你再仔细看看我的求助问题吧,期待你好的建议!Top
25 楼zhangxiaopin(zxp)回复于 2006-06-02 10:44:26 得分 0
//****在pageload事件中,判断一下
if(!IsPostBack)
{
if(UserType==1)
{
butDelete.Attributes.Add("onclick","javascript:if(confirm('请确认是否删除此记录!')==false) return false;");
}
}
//****删除按钮代码
......
不知道你想得是不是这样的啊。
Top
26 楼wangyanyan(亮出宝剑)回复于 2006-06-02 11:02:43 得分 1
在执行删除前先执行,
Btn1.Attributes.Add("onclick","return confirm('确定要删除?');");Top
27 楼super_grace(琦琦)回复于 2006-06-02 11:13:26 得分 0
你有点儿看懂了,但还不尽然,我再解释一下哈!
看这句 butDelete.Attributes.Add("onclick","javascript:if(confirm('请确认是否删除此记录!')==false) return false;");
这是在butDelete被click的时候才会触发的,弹出Confirm消息框,对吧?
但我需要的并不是button按钮的click触发的Confirm消息框,我想要的是在删除按钮代码中,根据调用函数的返回值,自动弹出Confirm消息框。看下面的例子:
//****删除按钮代码
......
if(a()==false)
{
......//弹出Confirm消息框
if(用户点击确定按钮)
{
delete(item);//删除操作
}
}Top
28 楼super_grace(琦琦)回复于 2006-06-02 11:18:25 得分 0
wangyanyan(坚持到底):
我想弹出Confirm消息框的地方是写在“删除按钮代码”中的。我想在click删除Button后,并且执行了部分删除Button的click事件的代码时弹出Confirm消息框,明白了吗?Top
29 楼super_grace(琦琦)回复于 2006-06-06 09:41:36 得分 0
感谢大家提了好多建议和解决办法!
可是,看来看去,都似乎和我的问题不是很合拍。不知道是我说的不够清楚呢,还是我的要求根本就不能达到呢?困惑中……盼望高手搭救……Top
30 楼william_weizhen()回复于 2006-06-06 10:07:03 得分 1
用Page.RegisterStartupScript("MsgSecretary","javascript:if(confirm('请确认是否删除此记录!')==false) return false;")
在你想要弹出信息的地方写入上述代码
把"javascript:if(confirm('请确认是否删除此记录!')==false) return false;"替换成你要输出的信息Top
31 楼super_grace(琦琦)回复于 2006-06-06 11:18:41 得分 0
那么,你的方法能给我返回一个bool值吗?我还需要根据返回的值进行下一步操作。Top
32 楼super_grace(琦琦)回复于 2006-06-06 11:19:51 得分 0
那么,你的方法能给我返回一个bool值吗?我还需要根据返回值进行下一步的操作。Top
33 楼super_grace(琦琦)回复于 2006-06-06 15:57:30 得分 0
william_weizhen() :
我用你的方法试了一下,为什么没有任何反应呢?Top
34 楼godwu(灵魂舞者)回复于 2006-06-08 11:06:34 得分 1
Dim scriptBlock As String = "<script language=""JavaScript"" type=""text/javascript"">" & vbCrLf
scriptBlock = scriptBlock & " var focusObj = document.getElementById(""" & controlID & """);" & vbCrLf
scriptBlock = scriptBlock & " focusObj.focus();" & vbCrLf
scriptBlock = scriptBlock & "</script>"
RegisterStartupScript("setFocus", scriptBlock)
与上面的类似,把其中内容替换成CONFIRM即可.Top
35 楼whl1295a(whl)回复于 2006-06-08 11:26:26 得分 0
路过,瞅了瞅,,,,Top
36 楼super_grace(琦琦)回复于 2006-06-08 11:29:02 得分 0
这是VB编的吧,我不是很懂VB,我用C#。你的这段代码也可以转换成C#吗?Top
37 楼kolosi(小丑巴其)回复于 2006-06-08 12:11:51 得分 3
我想弹出Confirm消息框的地方是写在“删除按钮代码”中的。我想在click删除Button后,并且执行了部分删除Button的click事件的代码时弹出Confirm消息框,明白了吗?
====================================
这是不可能的,对服务器端来说,javascript只是字符串而已。
如果先要实现这种效果,可以考虑这种方式。
先等一个变量
public string abc = "";
在加一个服务器端的hidden用来保存返回结果。
用户触发按钮事件
//defer是说在页面的DOM树加载完成以后执行。
abc = @"<script defer='defer' type='text/javascript'>
check();
function check()
{
if(confirm('yes or no'))
{
document.getElementById('ctl00_MF_HiddenField1').value = 'true';
}
else
{
document.getElementById('ctl00_MF_HiddenField1').value = 'false';
}
document.forms[0].submit();
}
</script>";
然后把<%=abc%>放在head里面。
最后在page_Load里面得到结果。
if (HiddenField1.Value == "true")
{
//可以在这个再次给abc付值,以便得到多次check的效果。
//最后处理完成以后,需要把这个页面的循环check结束掉(根据你得业务逻辑).
}
else if (HiddenField1.Value == "false")
{
}Top
38 楼kolosi(小丑巴其)回复于 2006-06-08 12:14:22 得分 0
另外:defer标记只对IE有效。Top
39 楼cm8983(思远)回复于 2006-06-08 12:48:28 得分 1
到这里去把VB转成C#:
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
你删除由什么来触发的?Top
40 楼cm8983(思远)回复于 2006-06-08 12:52:22 得分 0
这里把C#转成VB:
http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspxTop
41 楼lookatliu(独孤常败)回复于 2006-06-12 16:51:35 得分 0
我看了半天怎么觉得lz的要求直接在web页上写javascript就行了阿,为什么还要去服务器端呐Top
42 楼super_grace(琦琦)回复于 2006-06-20 13:41:52 得分 0
能说得详细些吗?多谢!Top
43 楼caravans(沙漠)回复于 2006-06-20 13:54:26 得分 0
楼主给我的想实现的东西一样 不过告诉你 这种方法现目前不能实现 我都发了N久的贴都没一个能回答出Top
44 楼super_grace(琦琦)回复于 2006-06-20 15:07:27 得分 0
我觉得这个要求并不过分,应该可以实现的,就是不知该怎么做。难道真的没人知道吗?Top
45 楼yjbgwxf123()回复于 2006-06-29 13:44:08 得分 0
楼主,当你删除数据时,要么就删除,要么就不删除。为什么还要在删除代码运行到一定程度时才提出是否删除呢?
如果你有什么删除规则的话用存储过程不更好?
Top
46 楼illfe(陳思嘉)回复于 2006-07-24 16:54:20 得分 5
樓主,你的問題我已經遇到過
解決的方式為,彈出一個自己寫的小頁面,上面寫著確認/取消按鈕
按確認時繼續執行另外的動作
我的另外動作是 __doPostBack('btnOK','');執行本頁上的按鈕btnOk的動作
比如
literalScript.Text = "<script language=JavaScript>" + vbCrLf + _
" var ret=window.showModalDialog('" & Url & "','_self','" & s & "');" + vbCrLf + _
" if (typeof(ret) !=""undefined"") " + vbCrLf + _
" { var oValue = ret; " + vbCrLf + _
" var oField; " + vbCrLf + _
" oField = eval(""document.all('" + txtValue.ClientID + "')""); " + vbCrLf + _
" oField.value = oValue; " + vbCrLf + _
" if (oField.value == 1) " + vbCrLf + _
" {var Fieldbtnd;" + vbCrLf + _
" Fieldbtnd= eval(""document.all('" + btnAdd.ClientID + "')"");" + vbCrLf + _
" Fieldbtnd.disabled=false;" + vbCrLf + _
" __doPostBack('btnOK',''); oField.value =0}" + vbCrLf + _
" }</script> "Top
47 楼super_grace(琦琦)回复于 2006-07-28 10:27:38 得分 0
多谢大家,结贴了!可惜分有点儿少,见谅~Top




