首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Button加入的确认删除对话框,点击取消后,照样删除,为什么呢?解决方案

2011-12-30 
Button加入的确认删除对话框,点击取消后,照样删除,为什么呢?functionIsChecked(){varGridView1document.g

Button加入的确认删除对话框,点击取消后,照样删除,为什么呢?
function   IsChecked()
                {
                        var   GridView1=document.getElementById( " <%=GridView1.ClientID   %> ");
                        var   flag=false;
                     
                          for(i   =   1;i   <   GridView1.rows.length;   i++)
                        {
                              if(GridView1.rows[i].cells[0].getElementsByTagName( "INPUT ")[0].checked)
                              {
                                        flag=true;
                                        break;
                              }
                        }
                        if(!flag)
                        {
                                alert( "请选择被删除的记录 ");
                                return   false;
                        }
                        if(confirm( "确定要删除选中的记录吗? "))
                return   true;
        else
        return   false;  
                }
<asp:GridView   ID= "GridView1 "   runat= "server "   AutoGenerateColumns= "False "   DataKeyNames= "nid ">
......
</asp:GridView>
<asp:Button   ID= "Button3 "   runat= "server "   Text= "删除选中的记录 "     OnClientClick= "return   IsChecked() "onClick= "Button3_Click "   />

protected   void   Button3_Click(object   sender,   EventArgs   e){......;//获取ID;DelDetails(ID);}
private   void   DelDetails(int   id){....}

我在GridView中加入了   <asp:CheckBox   ID= "check "   runat= "server "   Text= "选择 "   />

加入的确认删除对话框,点击取消后,照样删除,为什么呢?

[解决办法]
private void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
btnDel.Attributes.Add( "onClick ", "if (!window.confirm( '您真的要删除这条记录吗? ')){return false;} ");
}
}

[解决办法]
OnClientClick= "return IsChecked() "onClick= "Button3_Click " />
加上return false
改为
OnClientClick= "javascript:return IsChecked();return false; "

[解决办法]
if(confirm( "确定要删除选中的记录吗? ")){
return true;
}
else
{
return false;
}
是不是没有加大括号.
[解决办法]
return IsChecked()后面加上分号;

写这样:
<asp:Button ID= "Button3 " runat= "server " Text= "删除选中的记录 " OnClientClick= "return IsChecked(); "onClick= "Button3_Click " />

//注意OnClientClick= "return IsChecked(); "别少了分号哦

[解决办法]
如果js函数运行内部出现错误,如未找到控件,就会直接运行。
检查GridView1.rows[i].cells[0].getElementsByTagName( "INPUT ")[0].之下是否执行
[解决办法]
没有任何问题。看看是不是其它脚本错误导致的,或者拼写错误

下面的代码没有任何问题
ie7+ FF都可以


<%@ Page Language= "C# " %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN "
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<script runat= "server ">
// 计算数据,完全可以从数据看取得
ICollection CreateDataSourceByXianhuiMeng( )
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn( "学生班级 ", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn( "学生姓名 ", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn( "语文 ", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn( "数学 ", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn( "英语 ", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn( "计算机 ", typeof(System.Decimal)));

for (int i = 0 ; i < 8 ; i++)
{
System.Random rd = new System.Random(Environment.TickCount * i); ;
dr = dt.NewRow();
dr[0] = "班级 " + i.ToString();
dr[1] = "【孟子E章】 " + i.ToString();
dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
return dv;
}

// 设置每页显示的行数
int TotalRowCount = 12;
// 自动填充的行数
int numCount = 0;
protected void Page_Load( object sender, EventArgs e )
{
if (!Page.IsPostBack)
{
GridView1.DataSource = CreateDataSourceByXianhuiMeng();
GridView1.DataBind();
}
}

protected void Button1_Click( object sender, EventArgs e )
{
Response.Write( "执行了 ");
}
</script>

<html xmlns= "http://www.w3.org/1999/xhtml ">
<head id= "Head1 " runat= "server ">

<script type= "text/javascript ">
function IsChecked()
{
var GridView1=document.getElementById( " <%=GridView1.ClientID %> ");
var flag=false;



for(i = 1;i < GridView1.rows.length; i++)
{
if(GridView1.rows[i].cells[0].getElementsByTagName( "INPUT ")[0].checked)
{
flag=true;
break;
}
}
if(!flag)
{
alert( "请选择被删除的记录 ");
return false;
}
return confirm( "确定要删除选中的记录吗? ")
}
</script>
</head>
<body>
<form id= "form1 " runat= "server ">
<asp:GridView ID= "GridView1 " runat= "server ">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID= "v " runat= "server " />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "模版列 ">
<ItemTemplate>
<%#Eval( "学生姓名 ") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID= "Button1 " runat= "server " OnClick= "Button1_Click " Text= "Button " OnClientClick= "return IsChecked() " />
</form>
</body>
</html>

热点排行