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

asp.net(C#)中ListView控件中CheckBox的全选、反选如何实现?求大神指点

2014-01-17 
asp.net(C#)中ListView控件中CheckBox的全选、反选怎么实现?求大神指点。asp:ListView runatserver ID

asp.net(C#)中ListView控件中CheckBox的全选、反选怎么实现?求大神指点。

<asp:ListView runat="server" ID="ListView1" >
                        <LayoutTemplate>
                            <table>
                                <thead>
                                    <tr>
                                        <th style="width:60px;">
                                              <asp:CheckBox ID="CheckBox_All" OnCheckedChanged="CheckBoxAll"  runat="server" Text="全选" AutoPostBack="True" /> 
                                        </th>
                                        <th style="width:100px;">员工编号</th>
                                        <th style="width:180px;">姓名</th>
                                        <th style="width:60px;">性别</th>
                                        <th style="width:200px">部门</th>
                                        <th style="width:200px">职务</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
                                </tbody>
                            </table>
                        </LayoutTemplate>
                            <ItemTemplate>
                                <tr>
                                    <td align="center">
                                        <asp:CheckBox ID="CheckBox_Single" runat="server" />
                                    </td>


                                    <td align="center"><%# Eval("LoginID") %></td>
                                    <td align="center"><%# Eval("UserName") %></td>
                                    <td align="center"><%# Eval("Sex") %></td>
                                    <td align="center"><%# Eval("Department") %></td>
                                    <td align="center"><%# Eval("Post") %></td>
                                </tr>
                            </ItemTemplate>
                    </asp:ListView>


后代代码:
foreach (ListViewItem tempItem in ListView1.Items)//循环遍历listView控件中的每一项
        {
            CheckBox cb = tempItem.FindControl("CheckBox_All") as CheckBox;
            CheckBox cbo = tempItem.FindControl("CheckBox_Single") as CheckBox;
            if (cb.Checked == true)//如果当前项处于未选中状态
            {
                cbo.Checked = true; ;//设置当前项为选中状态
            }
            else
            {
                cbo.Checked = false;
            }
        }

可是获取不到前台的ID
[解决办法]
 CheckBox cb = tempItem.FindControl("CheckBox_All") as CheckBox;
            CheckBox cbo = tempItem.FindControl("CheckBox_Single") as CheckBox;

这个取不到值吗?
[解决办法]
这里要提醒一下。在后台写全选反选。没点一次界面刷新一次,非常不方便,建议直接用JS写
[解决办法]

  var input = 外层div.getElementsByTagName("input");
    for(var i = 0; i < input.length; i ++)
           {
               if(input[i].type == "checkbox")
                {
                  //反选的功能
                  if (input[i].checked)
                  {
                      input[i].checked=false;
                  }else{
                     input[i].checked=true;


                  }     
                }
           }


[解决办法]
全选,反选 像这样的 问题,应该使用Js来写,你没有必要为了 本来JS就能处理的事情 你还得回发一次服务器重新渲染页面.

热点排行