问:如何在点击按钮后弹出对话框产生阻断,根据选择的不同,执行不同的代码?来者有分!

ywiori27 2005-03-21 11:06:15

比如说,在DataGrid中,我建立了一个删除按钮,希望点击删除时,跳出一个询问框,当用户点击"yes",则继续执行删除功能.当"no"被点击,则跳出该时间.什么都不执行.
Response.Write("<script>confirm("Are you sure?");</script>");这个方法可以跳出javascript对话框,但不知道如何产生阻断.
下面是我的updata事件的code.请帮我改一下,谢谢.还有,这样写的话,好像无论如何都要刷新页面.
-------------------------------------------------------------
private void dgCategory_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
Response.Write("<script>confirm(\"are you sure\");</script>");
try
{
cmdModif.Parameters["Original_sn"].Value = e.Item.Cells[0].Text;
TextBox tbTemp = (TextBox)e.Item.Cells[1].Controls[0];
cmdModif.Parameters["category"].Value = tbTemp.Text;

conOpen();
cmdModif.ExecuteNonQuery();
conClose();

dgCategory.EditItemIndex = -1;
showData();
tbInput.Text = ""; //3号
}
catch(System.Exception strArgument)
{
showMessage.Text = "Error!Case:"+strArgument.ToString();
}
}
...全文
242 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywiori27 2005-03-22
  • 打赏
  • 举报
回复
vivi8233(吐司) ,请帮忙看看,下面还是提示出错???我的删除按钮在DataGrid的第4列,CommandName为Delete.
------------------------------------------------------------
private void dgCategory_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.Item.ItemType)
{
case ListItemType.Item:
LinkButton btn = (LinkButton)e.Item.Cells[3].FindControl("Delete"); //这里改成Button也一样
btn.Attributes.Add("onClick","javascript:return confirm('Are you sure?');"); //未将对象引用设置到对象的实例
break;
}
}
ziyan0218 2005-03-21
  • 打赏
  • 举报
回复
用js传值
然后判断
athossmth 2005-03-21
  • 打赏
  • 举报
回复
<script LANGUAGE="JavaScript">
<!--
// Nannette Thacker http://www.shiningstar.net
function confirmSubmit()
{
var agree=confirm("Are you sure you wish to continue?");
if (agree)
return true ;
else
return false ;
}
// -->
</script>



参考
Javascript Confirm Form Submission
http://www.shiningstar.net/articles/articles/javascript/confirmsubmit.asp?ID=ROLLA

Adding a Client-Side Confirmation Popup to the Delete Button
http://aspnet.4guysfromrolla.com/articles/090402-1.2.aspx
ywiori27 2005-03-21
  • 打赏
  • 举报
回复
顶!不要沉啊!
吐司vivi 2005-03-21
  • 打赏
  • 举报
回复
在你的datagrid的ItemDataBound事件里下面的

private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item:
{
Button btn=(Button)e.Item.FindControl("btn_del");
btn.Attributes.Add("onclick", "return confirm('此项操作不可恢复,确定删除这条记录吗?');");
break;
}
}
qhjdcd0737 2005-03-21
  • 打赏
  • 举报
回复
dicman 2005-03-21
  • 打赏
  • 举报
回复
LinkButton linkButton = (LinkButton)e.Item.Cells[3].FindControl("??");
dicman 2005-03-21
  • 打赏
  • 举报
回复
linkButton.Attributes.Add("onClick","javascript:return confirm('Are you sure?');");
ywiori27 2005-03-21
  • 打赏
  • 举报
回复
liuyong_lll(孤醉) ,大致明白你的意思,但不知如何实现.能不能再讲深一点?谢谢!
liuyong_lll 2005-03-21
  • 打赏
  • 举报
回复
其实如果你完成的逻辑很复杂,还是建议你不要这个样子做........


个人建议(现在我们项目中也是这样的):可以自己做一个弹出窗口,里边有确定、取消

弹出时候以模态的方式弹出,样式与JS的差不多,如此............可以达到你的目的
ywiori27 2005-03-21
  • 打赏
  • 举报
回复

谢谢athossmth(athos),刚才我看了你贴出的关于DataGrid 删除按钮提示框的例子.我自己改写如下,可是老是出错.

private void dgCategory_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
System.Web.UI.WebControls.LinkButton linkButton = e.Item.Cells[3].Controls[0]; //此处提示指定的转换无效
linkButton.Attributes["onClick"] = "javascript:return confirm('Are you sure?');";
string result = linkButton.Attributes["onClick"];
if(result == "true")
{
try
{
conOpen();
cmdDelAll.Parameters["sn"].Value = e.Item.Cells[0].Text;
cmdDelAll.ExecuteNonQuery();
conClose();

showData();
}
catch(System.Exception strArgument)
{
showMessage.Text = "Error!Case:"+strArgument.ToString();
}
}
}
各位,如果方便的话,写好帖出来么???

62,047

社区成员

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

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

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

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