服务器端代码如果需要让客户选择怎么做?

haisheng 2009-09-10 09:05:30
客户点“保存”按钮,执行服务器端C#代码,查询数据库后如果发现已经有数据想询问客户是否继续执行,客户选是,就继续执行服务器端C#代码。
如果在C#想让客户选择,我没有实现过。请问:在C#中如何和客户交互?
...全文
485 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2009-09-10
  • 打赏
  • 举报
回复
ajax配合多线程.问题处理的流程应该新开线程,第1个阶段结束后事件通知http线程返回,然后休眠1分钟(不是长期挂起,因为客户端不一定会响应,当做是超时).客户端判断之后ajax通知线程并唤醒它做相应处理.
happyboyxq1985 2009-09-10
  • 打赏
  • 举报
回复
帮顶
wangying110166 2009-09-10
  • 打赏
  • 举报
回复
根据提问的问题可知楼主是做C/S的,B/S程序不可能实现线程的中断操作,因而不可行。如果一定要做需要分步操作方可。
牛人 2009-09-10
  • 打赏
  • 举报
回复
我不想给你代码。代码楼上有高手给出。
我给你一个solution:

当用户点击save时 ,弹出confirm "保存会重写记录,您继续吗?"

当然,你可以在页面加载时,用一个hidden mark是不是有记录,如果有才弹出提示。
ljsheng 2009-09-10
  • 打赏
  • 举报
回复
关注!!!
xkx2003 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sandy945 的回复:]
HTML code<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>无标题页</title></head><body><formid="form1" runat="server"><asp:ButtonID="btn" runat="server" Text="执行" OnClick="btn_Click"/><asp:ButtonID="btnYes" runat="server" Width="0px" OnClick="btnYes_Click"/><asp:ButtonID="btnNo" runat="server" Width="0px" OnClick="btnNo_Click"/></form></body></html>

C# codeprotectedvoid btn_Click(object sender, EventArgs e)
{
Response.Write("开始执行");string js=string.Format("confirm('是否继续?')?document.getElementById('{0}').click():document.getElementById('{1}').click();", btnYes.ClientID, btnNo.ClientID);// or 取消什么都不执行//string js = string.Format("confirm('是否继续?')?document.getElementById('{0}').click():'';", btnYes.ClientID, btnNo.ClientID); ClientScript.RegisterStartupScript(GetType(),"confirm", js,true);

}protectedvoid btnYes_Click(object sender, EventArgs e)
{
Response.Write("继续");
}protectedvoid btnNo_Click(object sender, EventArgs e)
{
Response.Write("停止");
}
[/Quote]

确实能跑起来,效果已经出来了
只是这里添了两个隐藏的控件,如果不这样
就是一个执行的button,能实现吗?
Lovely_baby 2009-09-10
  • 打赏
  • 举报
回复
可以用js写个
btnOk.Attributes.Add("onclick", "return confirm('确定要更新吗?');");

private void btnOk_Click(object sender, System.EventArgs e)
{
if(ce_aYard.Checked)
{
hcy.WarnMsgOK("执行");
}
}


protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//你的代码
}
}
PlayerYK 2009-09-10
  • 打赏
  • 举报
回复
你把后台的函数分成两个写就行了

提交on_click(……)
{
if(有重复数据)
{
网页提示
显示隐藏的确认按钮
}
}
确认on_click(……)
{
调用 tijiao()
}
tijiao(……)
{
将数据存进数据库
}
lovezhxf 2009-09-10
  • 打赏
  • 举报
回复
帮顶,学习。.
阿非 2009-09-10
  • 打赏
  • 举报
回复

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btn" runat="server" Text="执行" OnClick="btn_Click" />
<asp:Button ID="btnYes" runat="server" Width="0px" OnClick="btnYes_Click" />
<asp:Button ID="btnNo" runat="server" Width="0px" OnClick="btnNo_Click" />
</form>
</body>
</html>



protected void btn_Click(object sender, EventArgs e)
{
Response.Write("开始执行");
string js = string.Format("confirm('是否继续?')?document.getElementById('{0}').click():document.getElementById('{1}').click();", btnYes.ClientID, btnNo.ClientID);
// or 取消什么都不执行
//string js = string.Format("confirm('是否继续?')?document.getElementById('{0}').click():'';", btnYes.ClientID, btnNo.ClientID);
ClientScript.RegisterStartupScript(GetType(), "confirm", js, true);

}

protected void btnYes_Click(object sender, EventArgs e)
{
Response.Write("继续");
}
protected void btnNo_Click(object sender, EventArgs e)
{
Response.Write("停止");
}
xkx2003 2009-09-10
  • 打赏
  • 举报
回复
哪位能给出一个完整的例子就好了
chen_ya_ping 2009-09-10
  • 打赏
  • 举报
回复
客户点“保存”按钮,执行服务器端C#代码,查询数据库后如果发现已经有数据想询问客户是否继续执行,客户选是,就继续执行服务器端C#代码。
如果在C#想让客户选择,我没有实现过。请问:在C#中如何和客户交互?

所有的操作都用AJAX做,用户点击保存的时候用AJAX去服务器端找数据是否存在,然后cofirm('数据已经存在,是否继续保存?')如果用户点击了确定,就保存,点击取消,就不进行任何的操作。

当然全服务器端的编程也是可以的

if(checkInfo())
{
给出提示信息
return;
}
else
{
继续下面的操作
}
myhid 2009-09-10
  • 打赏
  • 举报
回复
1,要询问客服端可用js代码了。在保存的过程中符合条件弹出一个js Confirm的对话框,点继续,OK,再提交表单执行剩下的代码。
2,或者用一个层模拟询问客户端。点是后,也是一样的道理了。
路人乙e 2009-09-10
  • 打赏
  • 举报
回复
非ajax莫属,当然是用iframe也能实现,不过要麻烦些
简单说下ajax思路:
function save()//保存函数
{
var result = $.ajax().repsonseText;//此段代码就是通过ajax发送请求并得到反馈信息
//返回信息可以这样写:yes或者是no
if(result=="yes"){
if(confirm("继续吗?")) //执行保存
}else{
//执行保存
}
}
使用iframe亦如此,通过两次动态给iframe赋值来实现保存
一品梅 2009-09-10
  • 打赏
  • 举报
回复
代码与事件绑定
txg92 2009-09-10
  • 打赏
  • 举报
回复
用AJAX做吧,分成两个函数,第二个函数接收第一个函数的返回值,然后弹出对话框,如果用户选择是,就执行第二个函数,选择否,就return,在AJAX里面应该容易实现的,用JS调用后台两个函数,同时传递参数
zhulong1111 2009-09-10
  • 打赏
  • 举报
回复
我的想法是在数据库的监听里 当触发的sql一样时就还回个标志 然后就弹出对话框 在判断是否进行
alpyh 2009-09-10
  • 打赏
  • 举报
回复
LS,他的意思是 在后台进行保存的过程中来个 “是否继续?”的询问,如果继续就继续操作
如果不继续就终止操作

这个好像不能实现。。。我也想能实现这个功能啊!
fengjian_428 2009-09-10
  • 打赏
  • 举报
回复
ASP.NET本来不就是执行的服务端代码么
me_child 2009-09-10
  • 打赏
  • 举报
回复
没明白你的意思
加载更多回复(3)

62,074

社区成员

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

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

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

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