<script language="javascript" type="text/javascript">
function CheckAllGridCheckBox(formName,obj, name)
{
var elements = document.forms[formName].elements;
for (var i=0; i<elements.length; i++)
{
if (elements[i].type == 'checkbox')
{
if (elements[i].name.indexOf(name) > -1)
{
elements[i].checked = obj.checked;
}
}
}
}
</script>上边是CheckBox全选JS是在数据控件中的 <input type="checkbox" name="checkone" id="ckOne" runat="server"/>
留言人:<a id="a1" href='find.aspx?Name=<%# DataBinder.Eval(Container.DataItem, "Name")%>'
style="font-size: small;"><%# DataBinder.Eval(Container.DataItem, "Name")%>这个是Repeater部分代码<asp:CheckBox ID="CheckBox1" runat="server" Text="全选" Font-Size="Small" onclick="CheckAllGridCheckBox('form1',this,'ckOne')" />高手帮我解决下如何判断Repeater中的单个CheckBox选中后的事件(也就是说就选中Repeater中两个CheckBox如何在后台判断选中的这两个CheckBox)
function CheckAllGridCheckBox(formName,obj, name)
{
var elements = document.forms[formName].elements;
for (var i=0; i<elements.length; i++)
{
if (elements[i].type == 'checkbox')
{
if (elements[i].name.indexOf(name) > -1)
{
elements[i].checked = obj.checked;
}
}
}
}
</script>上边是CheckBox全选JS是在数据控件中的 <input type="checkbox" name="checkone" id="ckOne" runat="server"/>
留言人:<a id="a1" href='find.aspx?Name=<%# DataBinder.Eval(Container.DataItem, "Name")%>'
style="font-size: small;"><%# DataBinder.Eval(Container.DataItem, "Name")%>这个是Repeater部分代码<asp:CheckBox ID="CheckBox1" runat="server" Text="全选" Font-Size="Small" onclick="CheckAllGridCheckBox('form1',this,'ckOne')" />高手帮我解决下如何判断Repeater中的单个CheckBox选中后的事件(也就是说就选中Repeater中两个CheckBox如何在后台判断选中的这两个CheckBox)
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。里面就提到了复选问题。
<input id="gvUserList_ctl02_ctl01" type="checkbox" name="gvUserList$ctl02$ctl01" checked="checked" disabled="disabled" />所以我们在用javascript操作GridView这样的控件中的asp.net Web服务器控件一定要注意这个情况,可以通过asp.net Web服务器控件的ClientID属性来操作。这时候我们可以使用普通HTML控件来达到我们想要的功能,asp.net对于普通HTML控件是不会更改它的id和name属性的。实现了单选和复选功能之后,我们如何获取选中的值呢?因为是普通HTML控件,自然不能像asp.net Web服务器控件那样利用某个属性来判断,不过我们可以利用一个asp.net Button服务器控件来提交表单,然后通过Request[“控件的name”]来获取选中的值(没有印象的朋友赶紧看第三页的介绍),得到值是形如“15,16,17”这样的字符串,这时我们可以利用SQL语句来进行批量操作,我们的SQL语句可以这么写:
String sql=”delete from Users where UserId in(“+Request["CheckboxGroup"]+”)”;
这样就不必进行分割字符串的操作,只连接数据库操作就删除了选中的数据,大大提高了效率。
var theForm = document.forms['aspnetForm'];
function CheckAllASN()
{
for (var k=0;k<document.aspnetForm.elements.length;k++)
{
var e = document.aspnetForm.elements[k];
if (e.id!= 'ctl00_ContentPlaceHolder1_GridView1_ctl01_Checkallbox1')
{
e.checked = document.aspnetForm.ctl00_ContentPlaceHolder1_GridView1_ctl01_Checkallbox1.checked;
}
}
}
</script>
<Columns>
<asp:TemplateField HeaderText="Check">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<input id="Checkallbox1" runat="server" visible="true" type="checkbox" onclick="CheckAllASN()"/>
</HeaderTemplate>
<HeaderStyle Width="1%" Wrap="false" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
{
//获取选中复选框数组列表
string[] ids = Request.Form["CheckBox1"].Split(','); //遍历数组列表获得各个选中复选框ID号
foreach (string id in ids)
{
if (id != string.Empty)
{
Delete(id);
}
}
} //重新绑定数据
this.Bind();
不知道上面的是不是你想要的效果.
//设置 CheckBox 的选择状态js反选 全选 多选框 兼容ie和firefox版本
function SettingChecked(isCked)
{
var ck=document.getElementsByTagName("input");//意思是找到页面上所有 <input > 节点
for(var i=0 ;i<ck.length;i++)
{
if(ck[i].type=="checkbox")
{
ck[i].checked=(isCked=="selectAll")? true :(!ck[i].checked);
}
}
}
//判断选中提示。
function DelAllItem(id,evt)
{
if(CkeckedTolNum(id)==0)
{
alert('<%=FSSoft.Web.UI.Language.Msg("00005") %>');
return false;}
else
{return window.confirm('<%=FSSoft.Web.UI.Language.Msg("00008") %>');}
}
function CkeckedTolNum(cid)
{
var num =0;
var cks =document.getElementsByTagName("input");
for(var i=0;i<cks.length;i++)
{
//cks[i].id.indexOf(cid) = 0 时,说明 是以 cid 开头的 ID
if(cks[i].type=="checkbox" && cks[i].checked && cks[i].id.indexOf(cid)>=0)
{num ++;}
}
return num;
}
function NoCheckSelect()//不选
{
var cks =document.getElementsByTagName("input");
for(var i = 0; i < cks.length ; i++)
{
if(cks[i].type.toLowerCase() =="checkbox" && cks[i].checked)
{
//如果选择框选中则清空
if(cks[i].checked.toString() == "true"){cks[i].checked = false;}
}
}
}
</script> <asp:Repeater ID="rpMyWriteLog" runat="server" onitemdatabound="rpMyWriteLog_ItemDataBound" >
<ItemTemplate>
<asp:CheckBox ID="single_Chk" name="selectAll" runat="server" />
<asp:HiddenField ID="logid" Value='<%#Eval("logid")%>' runat="server"/>
</ItemTemplate>
//删除选中的数据。可全删除。全选根据ID删除
protected void delWriteLog_Click(object sender, ImageClickEventArgs e)
{
sqlt.SetSQLBeginTrans();
try
{
for (int i = 0; i < rpMyWriteLog.Items.Count; i++)
{
CheckBox CB = (CheckBox)rpMyWriteLog.Items[i].FindControl("single_Chk");
if (CB.Checked==true)
{
string delID = ((HiddenField)rpMyWriteLog.Items[i].FindControl("logid")).Value;
cookies = Request.Cookies["UserCookies"];
if (cookies != null)
{
int uid = int.Parse(cookies["User_Uid"].ToString());//
sqlt.Operate("update dbo.space_MyReleased set delstate=1 where uid='"+uid+"' and logid=" + delID);
}
}
} sqlt.SetSQLCommitTrans(); sqlt.ConClose();
}
catch
{
sqlt.SetSQLRollBack(); sqlt.ConClose(); base.MessageBox("00006", null);
}
this.PageFen();
}够详细了吧
<span id="select2" class="STYLE8" onclick="SettingChecked();this.style['color']='#33AA3F'"> 反选 </span>-
<span id="select3" class="STYLE8" onclick="NoCheckSelect();this.style['color']='#33AA3F'"> 不选</span>
如果这样赋值:
<asp:CheckBox ID="ChkBox" ToolTip='<%#Eval("id")%>' runat="server" />
页面直接取就好了。 foreach (RepeaterItem item in Repeater1.Items)
{
CheckBox ChkBox = (CheckBox)item.FindControl("ChkBox");
if (ChkBox.Checked)
{
string id = ChkBox.ToolTip; sql += " delete from NT_Company_RecommendKeys where id=" + id;
TF = true;
}
}