gridview选择删除的一个问题

zhangrenying 2010-02-02 12:07:03
我在gridview 里面放了一个checkbox,外面放了一个删除的Button, 我想通过选中的行,来选择删除,但要求删除前有提示,
代码:

protected void ButtonDelAll_Click(object sender, EventArgs e)
{

for (int i = 0; i <= GVInternshipNews.Rows.Count - 1; i++)
{
CheckBox cb = (CheckBox)GVInternshipNews.Rows[i].FindControl("CheckBoxSelect");
if (cb.Checked)
{
this.ButtonDelAll.Attributes.Add("OnClick", "return confirm('确定要删除这条记录吗?');");
string guid = this.GVInternshipNews.DataKeys[i]["Guid"].ToString();
dalIntership.DeleteInternshipGuid(guid);
}
}
GridviewBind();

}


问题是,我第一次选择一个,点删除按钮,它没有提示语弹出,只有等我第二次删除才会有提示?
请问 这是为什么啊,怎么解决?
...全文
371 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
wsm 为什么我照着二十久楼的写法 ,能提示是能提示了为什么 却删除不了
fangyuantdy 2010-02-04
  • 打赏
  • 举报
回复
还是我来贴代码吧,保证能用
页面上要有一个全选复选框,不然自己修改相应代码吧

//===============================================
// 判断checkbox是否中数据
// 【输入参数】删除按钮,一条都没有选择点删除的提示语句,删除确认提示,全选复选框
// 【返回值】无
// 【作成者】
// 【概要】 判断checkbox是否中数据
//===============================================
function IsCheckSelect(btnDelete,selectMsg,deleteMsg,chkSelectAll)
{
//获得form中所有的子控件

chkElmements = btnDelete.form.elements;

for( i=0 ; i < chkElmements.length ; i++ )
{
//如果控件类型是checkbox,且不是全选按钮,且为选中状态

if( chkElmements[i].type == "checkbox" && chkElmements[i].checked == true
&& chkElmements[i].id != chkSelectAll )
{
return confirm(deleteMsg);
}
}

//如果没有选中任何一条数据,提示信息,并不执行后台代码

window.alert(selectMsg);

return false;
}

后台可以这么绑定这个方法

//注册“删除”按钮的提示脚本事件 提示MSG:请至少选择一条数据 和 是否删除数据
string strJsDel = "javascript:event.returnValue = IsCheckSelect("
+ this.btnDel.ClientID + ",'至少选择一条数据','是否进行删除操作','"
+ ckAll.ClientID + "');";
btnDel.OnClientClick = strJsDel;
qydvip 2010-02-04
  • 打赏
  • 举报
回复
在页面中写吧
试一下!
<asp:Button ID="btnDel" runat="server" OnClick="btnDel_Click" ToolTip="删除" OnClientClick=" return confirm('您确认删除吗?');" />
zhangrenying 2010-02-04
  • 打赏
  • 举报
回复
谢谢各位~~但问题还是没有结果
zhangrenying 2010-02-02
  • 打赏
  • 举报
回复
为什么要放在 Page_Load里面啊???
我的整个选择删除是放在Button 的事件里面的 啊
CalvinDo 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 polarissky 的回复:]
C# codeprotectedvoid Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{//查询并显示数据 Query();//给“删除”按钮增加确认提示 ButtonDelete.Attributes.Add("onClick","Javascript:if (?-
[/Quote]
这样
aihui109 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 polarissky 的回复:]
C# codeprotectedvoid Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{//查询并显示数据 Query();//给“删除”按钮增加确认提示 ButtonDelete.Attributes.Add("onClick","Javascript:if (?-
[/Quote]

被抢先了。。。。
rdfpl 2010-02-02
  • 打赏
  • 举报
回复
up
itliyi 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 polarissky 的回复:]
C# codeprotectedvoid Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{//查询并显示数据 Query();//给“删除”按钮增加确认提示 ButtonDelete.Attributes.Add("onClick","Javascript:if (confirm('您真的要删除选中纪录吗?')!=1){return false}");
}
}
[/Quote]e
polarissky 2010-02-02
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//查询并显示数据
Query();
//给“删除”按钮增加确认提示
ButtonDelete.Attributes.Add("onClick", "Javascript:if (confirm('您真的要删除选中纪录吗?')!=1){return false}");
}
}
zp63534036 2010-02-02
  • 打赏
  • 举报
回复
你在noclientclick里面写你要弹出的对话框试一下
wjzxx 2010-02-02
  • 打赏
  • 举报
回复

<asp:Button ID="btnPass2" runat="server" Text="批量通过" OnClick="btnPass1_Click" OnClientClick="confirm('确定要删除这条记录吗?')" />  
gdlpc 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]
ClientScript.RegisterStartupScript(this.GetType(), "PleaseCheck", "if(confirm('确定删除吗'))document.getElementById('hf').value='1';else
document.getElementById('hf').value='0;",true); 
if(hf.value.Equals("1"))
{

}

[/Quote]

此方法无法根据判断去控制,我测试过,在还未出现对话框这前,已经执行了
if(hf.value.Equals("1"))
{
  //在还未出现对话框这前,已经执行了
}
是什么问题?请指教
zhangrenying 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kang_zhi_xiong13456 的回复:]
引用 6 楼 calvindo 的回复:
引用 2 楼 polarissky 的回复:
C# codeprotectedvoid Page_Load(object sender, EventArgs e)
    {if (!IsPostBack)
        {//查询并显示数据            Query();//给“删除”按钮增加确认提示            ButtonDelete.Attributes.Add("onClick","Javascript:if (?-

这样

[/Quote]
2楼的方法,可以做到在选择第一个的时候能弹出提示信息,但是在我都不选择的时候,直接点击删除按钮,它也能弹出提示信息啊,这个没有必要,应该在没有选择checkbox的时候,当我再点击删除按钮的时候,应该弹出的是请选择要删除的信息啊???
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 calvindo 的回复:]
引用 2 楼 polarissky 的回复:
C# codeprotectedvoid Page_Load(object sender, EventArgs e)
    {if (!IsPostBack)
        {//查询并显示数据            Query();//给“删除”按钮增加确认提示            ButtonDelete.Attributes.Add("onClick","Javascript:if (?-
[/Quote]
这样
jianshao810 2010-02-02
  • 打赏
  • 举报
回复
直接在aspx 文件里 写。。onclientClick='return confirm("你要删除吗?")'
CalvinDo 2010-02-02
  • 打赏
  • 举报
回复
var objs=document.getElementsById(" <%=GVInternshipNews.ClientID%>").getElementsByTagName("input");
zhangrenying 2010-02-02
  • 打赏
  • 举报
回复



function choseDel() {
debugger
var count = 0; //用来判断当前选择了几行
var objs=document.getElementsById("<%#GVInternshipNews.ClientID%>").getElementsByTagName("input");
//用JavaScript DOM的document.all可以获取到页面上所有元素,继而去获取到GridView
for (var i = 1; i < objs.length; i++) {
//条件是从该GridView得第2行开始,小于它的行的总数,因为该GridView控件有表头一行
if (objs[i].type=="checked") {
//获取到GridView1第i行0列的checkbox控件,判断它的checked属性
count++;
return confirm('确定要删除这条记录吗?');
}
else
{
alert('请选择你要删除的数据!');
}
}
}


var objs=document.getElementsById("<%#GVInternshipNews.ClientID%>").getElementsByTagName("input");为什么说这句错误?
随风落梦 2010-02-02
  • 打赏
  • 举报
回复
可以在前台直接JS写的吧
加载更多回复(10)

62,254

社区成员

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

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

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

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