如何单击按钮(服务器端)弹出个对话框,按"确定"执行异端代码,按"取消",执行另一段代码???????
注意:::::!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
要选择执行的代码是服务器端的,要是客户端的我就不用问了,请高手看清楚再解答,谢谢!!
问题点数:10、回复次数:19Top
1 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-06-01 13:47:24 得分 0
方法1:
if(confirm(".......")
{
<%
你的服务器代码
%>
}
else
{
<%
你的服务器代码
%>
}Top
2 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-06-01 13:50:03 得分 0
方法2:
if(confirm("...."))
{button1.click();}
else
{button2.click();}
然后在这2个按钮事件处理里面写你的服务器代码,之后把这2个按钮的宽度和高度设成0(注意不能用Visible=false,因为不正确生成客户端标签)Top
3 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-06-01 13:54:09 得分 0
方法3:
用Attributes.Add("客户端事件","return confirm('.....');")
可以在客户端触发这个事件的时候添加判断,决定是否提交服务器。
不过也就是说,只能实现楼主要的“点确定实现一段代码”
不过“点取消就什么也不做”。。。美中不足Top
4 楼jisen(亲密爱人)回复于 2005-06-01 14:12:39 得分 0
我的第一想法是做一个固定的小窗体,有"确定"和"取消"2按钮,然后做你想做的事情啊!Top
5 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-01 14:20:16 得分 10
你可以在页面上放一个隐藏表单,比如HIDDEN,然后在点击按钮事件里面,为此HIDDEN赋值
为提交按钮添加事件
this.Button1.Attributes.Add("onclick","if(confirm('确定执行吗?')==true){document.all('hidden1').value='1';}else{document.all('hidden1').value='0';}");
然后,在该按钮的事件里面,取HIDDEN的值,根据值判断该如何执行代码.Top
6 楼huangguolinc(来了)回复于 2005-06-01 14:27:39 得分 0
不知道快乐的第2个方法可不可行?如果可行的话,把width设置为0,它在页面也要占一定位置,你试试把它做成hidden看看怎么样?
我的办法是:用TextBox控件做为选择结果依据,并隐藏起来
<style>.h{display:hidden;}</style>
<form runat=server>
<asp:TextBox ID="hid" CssClass="h" runat="server"/>
</form>
javscript:
function mouseOnclick()
{
if(confirm("..."))document.getElementById("hid").value="1";
else document.getElementById("hid").value="2";
}
c#
if(hid.Text=="1"){
......
}else{
.........
}
试试看Top
7 楼tomorrowstar(以前我看事物是用肉眼去看!)回复于 2005-06-01 14:43:18 得分 0
同意 hchxxzx(NET?摸到一点门槛) 的方法:
this.Button1.Attributes.Add("onclick","if(confirm('确定执行吗?')==true){document.all('hidden1').value='1';}else{document.all('hidden1').value='0';}");
服务器端
if(Request.Form["hidden1"]=="1")
{...}
else
if(Request.Form["hidden1"]=="0")
{
...
}
Top
8 楼chx_xuxu(逍遥客)回复于 2005-06-02 10:12:14 得分 0
我的代码是这样的:
<script language="javascript">
function gotoweb()
{
if(confirm("que ding yao zhuan xiang gai ye mian ma?"))
{
<%
textbox1.text="werwerwe"
%>
}
else
{
<%
page.response.redirect("treeview.aspx")
%>
}
}
</script>
一运行马上转到treeview.aspx,根本不会弹出对话框啊Top
9 楼upshania(小姐,你喜欢吃青椒吗?)回复于 2005-06-02 10:16:39 得分 0
<script>
function gotoweb()
{
if(confirm("que ding yao zhuan xiang gai ye mian ma?"))
{
document.all.textbox1.value="werwerwe";
}
else
{
document.location.href="treeview.aspx";
}
}
</script>Top
10 楼chx_xuxu(逍遥客)回复于 2005-06-02 10:29:57 得分 0
方法2不行啊,负责任点好吗?哎________________________Top
11 楼msvbprogrammer(關)回复于 2005-06-02 10:32:28 得分 0
这个问题我也研究了很久,找到了一个自认为不错的方法。
首先需要好好研究:
http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4
弄明白了这个,就好办了。我们可以让弹出的窗口点“确定”,就返回“true”,点其它按钮,就返回别的字符串,反正都是自己定义的:)
现在的问题就是,我们已经知道了弹出窗口返回的内容,那么如何在javascript中调用c#的后台程序呢?
我的解决办法是这样的:
首先在网页上添加一个LinkButton,ID为lbrun,双击后在后台的“lbrun_Click()”中写好你要调用的代码,再将其Visible属性设为false。现在只要在前台的javascript中用:
__doPostBack('lbrun','');
着行代码就可以调用后台的lbrun_Click(),很爽!
弹出的窗体可是有模式的呀!!Top
12 楼chx_xuxu(逍遥客)回复于 2005-06-02 10:38:56 得分 0
upshannia:我的textbox1是服务器端的,能做到吗>?Top
13 楼msvbprogrammer(關)回复于 2005-06-02 10:43:44 得分 0
你的问题里不需要textbox呀,给的例子里用textbox,可是你不用阿,那个例子好好研究有很大用处的!Top
14 楼zhanmincode(killer)回复于 2005-06-02 10:46:13 得分 0
关注,原来我也想这么干,实现不了,就变通了一下Top
15 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-06-02 10:50:38 得分 0
那你先说说你要实现什么样的功能啊。说清楚,别人也好处理。你看上面都一大堆答案了,就总结不出来。。。/lhTop
16 楼upshania(小姐,你喜欢吃青椒吗?)回复于 2005-06-02 11:00:27 得分 0
服务端的控件经过编译到客户端后都是<input type=submit 这样的提交 其实也是客户端拥用的对象。。。没什么。。。一样的处理Top
17 楼chx_xuxu(逍遥客)回复于 2005-06-02 11:14:37 得分 0
再问个问题,客户端代码能调用后台函数或过程吗??如果能就太爽了Top
18 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-06-02 11:22:07 得分 0
再问个问题,客户端代码能调用后台函数或过程吗??如果能就太爽了
只能用楼上给的方法,要是直接的话,那是不行的Top
19 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-02 13:12:19 得分 0
我的代码是这样的:
<script language="javascript">
function gotoweb()
{
if(confirm("que ding yao zhuan xiang gai ye mian ma?"))
{
<%
textbox1.text="werwerwe"
%>
-------------
看来,楼主还是一心想着ASP啊.
要转换观念,上述写法不行.
Top




