如何在asp.net里实现弹出对话框(VB脚本)(菜鸟勿扰)

我需要在ASP.net里实现这样一个功能:在后台代码里根据页面生成一个文件(问题不在这儿),如何在文件存在的时候弹出一个对框,对话框最好能有三个按钮(是,否,取消),选“... 我需要在ASP.net里实现这样一个功能:
在后台代码里根据页面生成一个文件(问题不在这儿),如何在文件存在的时候弹出一个对框,对话框最好能有三个按钮(是,否,取消),选“是”的时候替换现有文件;选“否”的时候不替换,读取现有文件;选“取消”返回,不进行操作。
主要请高手解决如何弹出对话框并获得返回值,如果三按钮实现不了两按钮也勉强接受,能在ASP.NET 2.0里实现msgbox更好。
由于生成文件到产生操作都不是通过按钮实现的,所以请不要用类似用CONFIRM绑定到按钮事件上这样的方法,虚心请教,方案好的话肯定会加分。
当然是要在客户端运行是弹出对话框,呵呵
ehdy的方法倒是我准备做的,不过用AJAX很容易带来各种问题,我试试吧。
另外加了10分
展开
 我来答
ehdy
2008-09-21 · TA获得超过4638个赞
知道小有建树答主
回答量:1454
采纳率:77%
帮助的人:849万
展开全部
如果我没有理解错你的意途,你的系统构架应该是这样的:

在server上有一个脚本生成文件,并放入一个文件夹,也许你是用的VB写的winform在server定时跑,然后如果server上的脚本发现这个文件存在,则就需要在client端显示一个对话框,让用户判断如何操作,替换还是保持并打开.

因为你后面是用winform的,而前台是用asp.net ,所以你并没有用到socket编程..如果client也是用winform的话,问题就简单得多.直接用socket就可以很快的实现.如果你的前面是web,我想可以使用以下方法:

1.在server上的database生成一个表,包含二个字段filename,flag
filename:表示你生成的文件名
flag:默认值为0,当为1时,则替换,为2时,则打开原有文件,为3时,则忽略

2.当server上的脚本发现文件存在的时候,将文件名写入filename字段,比如你的文件名为 1.txt, 在filename 里面写入1.txt,此时flag=0

3.在asp.net web上面放置一个ajax的timer控件,每秒钟去读取这个表,如果能找到flag=0的数据,则弹出一个新页面,这个页面包括三个button和一个label,button的Text 属性分别为 ”替换文件","打开原有文件",”取消”.
Label显示这个文件名,可以用querystring引用.

4.当用户处理完成后,并闭弹出的页面,并将database里面的flag字段进行相应的更改.比如需要替换,则当点击”替换文件”按钮后,把filename对应的flag改为1,server上的脚本去读取这个flag , 然后进行操作.

不要用javascript实现所谓的msgbox,因为在不同的浏览器中间会出现很多bug
席正祥03
2008-09-14 · 超过24用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:76.8万
展开全部
我明白你一点点意思了,跟我当初学应该想法是差不多

你想在服务器实现弹出按钮?想向Windows应用程序那样,在本机弹出按钮?试问该事件由谁来操作?服务器一个黑大个躺在机房,甚至显示终端都没有,怎么执行这种操作?web终归是与页面到交互的

如果不是的话,那么
CONFIRM的原理是一样的,点"是"产生postback,返回 true
点"否"返回false,不产生postback,相当于你的取消,也就页面无反应

你想要的是客户端编程,还是服务端?WEB是面向无连接的,客户端响应事件到服务端来回的postback,实现按钮弹出,肯定是客户端的事件,也就是客户端编程,无论.NET怎么牛叉,原理终究是一样,也只能是在客户端产生脚本代码响应客户端事件,不可能到服务器上去执行客户端事件,由客户端事件去postback触发服务器的postback。

你想加一个 "否" 用来不替换,而读取,是可以的。MsgBox就能,但是是客户端的,服务器端的按钮弹出,是没有必要的,这种思想也是完全错误不可取的,但是却也不是不可以

---服务器如下实现弹出
添加System.Windows.Forms引用,然后再代码加入using System.Windows.Forms;

//-------------------------------------------------
DialogResult dr= MessageBox.Show("是替换,否不替换读取,取消什么都不做", "你确定要执行如下操作吗?", MessageBoxButtons.YesNoCancel);
if (dr==DialogResult.Yes)
{ Response.Write("是点击"); }
else if (dr == DialogResult.No)
{ Response.Write("否点击"); }
else if (dr==DialogResult.Cancel)
{ Response.Write("取消点击"); }
//---------------------------------------------

VB的代码为就不会写了,自己去改吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式