• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

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();
}
}
...全文
130 点赞 收藏 11
写回复
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();
}
}
}
各位,如果方便的话,写好帖出来么???
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告