我在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(); }
问题是,我第一次选择一个,点删除按钮,它没有提示语弹出,只有等我第二次删除才会有提示?
请问 这是为什么啊,怎么解决?
代码: 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(); }
问题是,我第一次选择一个,点删除按钮,它没有提示语弹出,只有等我第二次删除才会有提示?
请问 这是为什么啊,怎么解决?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//查询并显示数据
Query();
//给“删除”按钮增加确认提示
ButtonDelete.Attributes.Add("onClick", "Javascript:if (confirm('您真的要删除选中纪录吗?')!=1){return false}");
}
}
我的整个选择删除是放在Button 的事件里面的 啊
document.getElementById('hf').value='0;",true);
if(hf.value.Equals("1"))
{ }
那么只有在点击ButtonDelAll之后,ButtonDelAll才会有这个属性,所以下一次点击才能弹出提示,在if (!IsPostBack)里加这句话,那你点ButtonDelAll之前,它就有了这个属性。
还有10楼的朋友方法是正确的,但是在checkbox里面没有value 这个属性吧
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");为什么说这句错误?
此方法无法根据判断去控制,我测试过,在还未出现对话框这前,已经执行了
if(hf.value.Equals("1"))
{
//在还未出现对话框这前,已经执行了
}
是什么问题?请指教
<asp:Button ID="btnPass2" runat="server" Text="批量通过" OnClick="btnPass1_Click" OnClientClick="confirm('确定要删除这条记录吗?')" />
试一下!
<asp:Button ID="btnDel" runat="server" OnClick="btnDel_Click" ToolTip="删除" OnClientClick=" return confirm('您确认删除吗?');" />
页面上要有一个全选复选框,不然自己修改相应代码吧//===============================================
// 判断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;