如题我增加一个全选按钮后,结果选中2项数据库存了N条记录
代码如下
foreach (DataListItem item in DataList1.Controls)
{
string str = "";
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
{ // for (int i = 0; i < this.DataList1.Items.Count; i++)
for (int i = 0; i < DataList1.Items.Count; i++)
{ Label LabelX = (Label)this.DataList1.Items[i].FindControl("Label4"); Label labelComNa = (Label)this.DataList1.Items[i].FindControl("Label5");
Label labelDutNa = (Label)this.DataList1.Items[i].FindControl("Label6");
Label labelDutID = (Label)this.DataList1.Items[i].FindControl("Label55");
kk.UserID = mUser.UserID;
kk.checkResume = "2";
kk.CompanyID = Convert.ToInt32(LabelX.Text);
代码如下
foreach (DataListItem item in DataList1.Controls)
{
string str = "";
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
{ // for (int i = 0; i < this.DataList1.Items.Count; i++)
for (int i = 0; i < DataList1.Items.Count; i++)
{ Label LabelX = (Label)this.DataList1.Items[i].FindControl("Label4"); Label labelComNa = (Label)this.DataList1.Items[i].FindControl("Label5");
Label labelDutNa = (Label)this.DataList1.Items[i].FindControl("Label6");
Label labelDutID = (Label)this.DataList1.Items[i].FindControl("Label55");
kk.UserID = mUser.UserID;
kk.checkResume = "2";
kk.CompanyID = Convert.ToInt32(LabelX.Text);
{
//获得全选按纽的事件源
CheckBox chkAll = (CheckBox)sender;
if (chkAll.Text == "全选")
{
//其实当前遍历的项是当前页面的记录条数
foreach (DataGridItem dl in this.DataGrid1.Items)
{
CheckBox chkSelect = (CheckBox)dl.FindControl("chkSelect");
chkSelect.Checked = chkAll.Checked;
}
}
}
function selectAll(){
var len=document.Index.elements.length;
var i;
for (i=0;i<len;i++){
if (document.Index.elements[i].type=="checkbox"){
document.Index.elements[i].checked=true;
}
}
} function unSelectAll(){
var len=document.Index.elements.length;
var i;
for (i=0;i<len;i++){
if (document.Index.elements[i].type=="checkbox"){
document.Index.elements[i].checked=false;
}
}
}
</script><INPUT class="redButtonCss" onclick="selectAll()" type="button" value="全 选">
//选中全选
function checkradio(obj)
{
var t=document.all.tags("input");
for(i=0;i<t.length;i++)
{
if(t[i].type=="checkbox")
{
t[i].checked=obj.checked;
}
}
}
//选中单选
function checkun()
{
//document.Form1.cba.checked=false;
document.getElementById("cba").checked=false;
}
</script>
------------------------ <asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="cbelect" runat="server" onclick='checkun()'/>//单选
</ItemTemplate>
<HeaderTemplate>
<input id="cba" type="checkbox" onclick='checkradio(this)'/>//全选
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>-------------------
{
this.DataList1.Items;
foreach (DataListItem r in this.DataList1.Items)
{
if (((CheckBox)r.FindControl("Chk")).Checked)
{
//存储
}
}
}
前台代码
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0" style="width: 754px">
<tr>
<td style="text-align: right">
<asp:Button ID="Button1" runat="server" CommandName="Addall" Text="批量申请" /></td>
</tr>
</table>
。。
后台
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Addall")
{
if (Session["UserModel"] != null)
{
foreach (DataListItem item in DataList1.Controls)
{
string str = "";
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
{ // for (int i = 0; i < this.DataList1.Items.Count; i++)
for (int i = 0; i < DataList1.Items.Count; i++)
{ Label LabelX = (Label)this.DataList1.Items[i].FindControl("Label4"); Label labelComNa = (Label)this.DataList1.Items[i].FindControl("Label5");
Label labelDutNa = (Label)this.DataList1.Items[i].FindControl("Label6");
Label labelDutID = (Label)this.DataList1.Items[i].FindControl("Label55");
kk.UserID = mUser.UserID;
kk.checkResume = "2";
kk.CompanyID = Convert.ToInt32(LabelX.Text);
但是好像没有判断,是选中的范围?
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
{
这几句是判断是否选中的,前台有JS
{
if(document.all.checkbox1.length>1)
{
for(var i=0;i<document.all.checkbox1.length;i++)
{
if(document.all.checkbox1[i].checked)
{
document.all.checkbox1[i].checked = false;
}
else
{
document.all.checkbox1[i].checked = true;
}
}
}}
然后在
<ItemTemplate>
里加上啦
<input id="checkbox1" name="checkbox1" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "DutyID")%>' /></td>
可按目前的情况呢吧当前页当前页全部放到数据库啦
全部放到数据啦
{
if(((CheckBox)this.DataGrid1.Items[i].FindControl("CheckBox1")).Checked)
{
prikey=this.DataGrid1.Items[i].Cells[1].Text;
}
}
我曾经测试过2个容器这些方法不能通用~我深层的融汇不通-_=!
我在Grideview里测试成功。这个datalist也想测试成功呵呵
现在存入数据库N多条记录那个解决啦。现在的问题是我判断是否选中的语句不知道放那里好啦。
foreach (DataListItem item in DataList1.Controls)
{
string str = "";
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
{ // for (int i = 0; i < this.DataList1.Items.Count; i++)
for (int i = 0; i < DataList1.Items.Count; i++)
{
}
}
----------------------------------------------其中 string str = "";
str = Request.Form.Get("checkbox1");
if (str != "" && str != null)
这个是判断的