如何在asp.net中实现如c/s架构里的程序中断功能

blackrecord 2008-07-16 07:48:37
在c/s结构中比较在常见的方式
比如:

for(int i=0;i<10;i++)
{
if(i==5)
{
//程序中断 弹出是否对话询问用户是否继续 获得用户返回消息。。根据用户返回消息决定是否继续
}
}

请教是否在b/s结构中有实现的方法吗?
客户端只能是用javascript
...全文
148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
suyiming 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Jinglecat 的回复:]
不能。

即使模拟实现的也是多个 HTTP 请求了,不是在“同一段程序过程”,多个请求记录状态。
[/Quote]

孟老师说的不错 别把cs的想法扯到bs
bwangel 2008-07-17
  • 打赏
  • 举报
回复
需要用户判断时只能中断输出html返回客户端,并用cookis或session记下中断点.客户点击后再返回,读取中断点继续处理.

如果B/S象CS那么强大,就没人用CS了.我们只能扬长避短.
Jinglecat 2008-07-16
  • 打赏
  • 举报
回复
不能。

即使模拟实现的也是多个 HTTP 请求了,不是在“同一段程序过程”,多个请求记录状态。

suiqirui19872005 2008-07-16
  • 打赏
  • 举报
回复
我那个不是什么中断,只不过是一些逻辑判断而已.
到要"有一些数据要询问用户是否继续的 "时,Response.write输出一个submit控钮.当用户点了按钮后,就执行后面的语句.


if (Request["flag"] != null && Request["flag"].ToString() == "1")
{
执行后面的语句 ;
Response.End();

}
执行前面的语句
if(模拟中断)
{
Response.write("if(comfirm('真的继续')){window.loation.href='de.aspx?flag=1'}")
}

Response.End();
blackrecord 2008-07-16
  • 打赏
  • 举报
回复
我现在做是一次处理多批数据模块
有一些数据要询问用户是否继续的
用户控件的在说下细节实现?

hy_lihuan 2008-07-16
  • 打赏
  • 举报
回复
其实这个不能算是中断吧,完全可以div弹出用户控件然后根据不同的选择进行逻辑的编写。这个就不需要使用js,而且会灵活很多
blackrecord 2008-07-16
  • 打赏
  • 举报
回复
suiqirui19872005的思路是对的 但这样要提交很多次 不知道有没有更好
另外 suiqirui19872005我用vs2008跑不动 报javascript脚本错误。。
suiqirui19872005 2008-07-16
  • 打赏
  • 举报
回复
可以

protected void Page_Load(object sender, EventArgs e)
{
bool flag = false;
if (Request["flag"] != null && Request["flag"].ToString() == "1")
{
flag = true;
}
for (int i = 0; i < 10; i++)
{
if (i == 5 && flag != true)
{
Response.Write(" <script>if(confirm('是否真的继续')){window.location.href='default.aspx?flag=1'} </script>");
Response.End();
}
Response.Write(i + "<BR>");

}
}


第一次输出
0
1
2
3
4
第二次接下来
0
1
2
3
4
5
6
7
8
9
blackrecord 2008-07-16
  • 打赏
  • 举报
回复
当循环中断后,用户提交自己的选择后 这个循环还能继续往下走。。
suiqirui19872005 2008-07-16
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
bool flag = false;
if (Request["flag"]!=null && Request["flag"].ToString() == "1")
{
flag = true;
}
for (int i = 0; i < 10; i++)
{
if (i == 5 && flag != true)
{
Response.Write(" <script>if(confirm('是否真的继续')){window.location.href=if((/\\?/).test(window.location.href)){window.location.href.replace(/\\?/,'?flag=1&');}else{window.location.href=window.location.href+'?flag=1'}} </script>");
Response.End();
}


}
}
suiqirui19872005 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 blackrecord 的帖子:]
在c/s结构中比较在常见的方式
比如:

C# code
for(int i=0;i<10;i++)
{
if(i==5)
{
//程序中断 弹出是否对话询问用户是否继续 获得用户返回消息。。根据用户返回消息决定是否继续
}
}



请教是否在b/s结构中有实现的方法吗?
客户端只能是用javascript
[/Quote]

这样不行的.
这样做.
protected void Page_Load(object sender, EventArgs e)
{
bool flag = false;
if (Request["flag"]!=null && Request["flag"].ToString() == "1")
{
flag = true;
}
for (int i = 0; i < 10; i++)
{
if (i == 5 && flag != true)
{
Response.Write("<script>if(confirm('是否真的继续')){window.location.href=if((/\\?/).test(window.location.href)){window.location.href.replace(/\\?/,'?flag=1&');}else{window.location.href=window.location.href+'?flag=1'}}</script>");
Response.End();
}


}
}
宝_爸 2008-07-16
  • 打赏
  • 举报
回复
javascript中的弹出对话框:

  第一种:alert("message")

第二种:confirm("message")

第三钟:prompt("message")

第四种:open("url")

第一种alert对话框是一个最简单,也是最常用的一个弹出对话框,通常用于提示信息,对话框包含一个按钮,单击对话框中的按钮将会关闭此对话框.

   第二种confirm对话框返回的是一个布尔值,该对话框一般用于用户选择,该对话框包含两个按钮,一般一个是"确认",另一个是"取消",比如我们在开发程序的时候,创建一个删除按钮,为了防止用户务操作,一般就会用到这个对话框:"您确定删除吗?"如果选择"确定",执行删除,如果选择"取消",则返回,不做任何操作!

   第三种prompt对话框,主要用户获取用户输入的信息,比如,弹出一个对话框:

 <script language="javascript">
var name=prompt("你的名字叫什么?");
document.write(name);
</script>

   prompt对话框包括两个按钮("确认"和"取消")和一个文本框,文本框用来获取用户输入的信息.

   第四种其实是一种用对话框的方式打开一个网页,open方法包含很多的参数,主要是用户设置浏览器的显示外观:

window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。

具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)

62,182

社区成员

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

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

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

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