本人实现时主要难点是,不知道怎么得到复选框选中了那些记录ID号,刚初学,谢谢!

解决方案 »

  1.   

    可以通过html控件,设置不同value,直接request.Form取得或者使用服务器端控件,循环repeater.items
      

  2.   

    我的做法是在每个Item用一个Label记录id值,将来遍历复选框的时候去找同一个Item里的Label的值
      

  3.   

    aspx                                <asp:GridView ID="myGridView" runat="server" Width="95%" AutoGenerateColumns="False"
                                        DataKeyNames="WorkerID,SquadID" OnRowCancelingEdit="myGridView_RowCancelingEdit"
                                        OnRowDataBound="myGridView_RowDataBound" OnRowEditing="myGridView_RowEditing"
                                        OnRowUpdating="myGridView_RowUpdating">
                                        <Columns>
                                            <asp:BoundField DataField="WorkerID" HeaderText="ID" ReadOnly="True">
                                                <ItemStyle Width="70px" />
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderText="班组">
                                                <ItemStyle Width="100px" />
                                                <EditItemTemplate>
                                                    <asp:DropDownList ID="ddlSquad" runat="server">
                                                    </asp:DropDownList>
                                                </EditItemTemplate>
                                                <ItemTemplate>
                                                    <asp:Label ID="lblSquadName" runat="server"></asp:Label>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="姓名">
                                                <EditItemTemplate>
                                                    <asp:TextBox ID="txtWorkerName" runat="server" MaxLength="20" Text='<%# Bind("WorkerName") %>'></asp:TextBox>
                                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtWorkerName"
                                                        Display="Dynamic" ErrorMessage="请填写姓名" ForeColor="White"></asp:RequiredFieldValidator>
                                                </EditItemTemplate>
                                                <ItemStyle HorizontalAlign="Center" />
                                                <ItemTemplate>
                                                    <asp:Label ID="lblWorkerName" runat="server" Text='<%# Bind("WorkerName") %>'></asp:Label>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                            <asp:CommandField ShowEditButton="True">
                                                <ItemStyle Width="100px" />
                                            </asp:CommandField>
                                            <asp:TemplateField>
                                                <HeaderTemplate>
                                                    <input onclick="checkFormAll(this.checked)" type="checkbox">
                                                </HeaderTemplate>
                                                <ItemTemplate>
                                                    <asp:CheckBox ID="chkSelect" runat="server"></asp:CheckBox>
                                                </ItemTemplate>
                                                <ItemStyle Width="50px" />
                                            </asp:TemplateField>
                                        </Columns>
                                    </asp:GridView>cs/// <summary>
            /// 删除维修人员
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnDel_Click(object sender, EventArgs e)
            {
                //遍历所有的 chkSelect 找出那些项需要删除
                string strDel = "";
                foreach (GridViewRow gr in this.myGridView.Rows)
                {
                    CheckBox chk = (CheckBox)gr.FindControl("chkSelect");
                    if (chk.Checked)
                    {
                        strDel = strDel + this.myGridView.DataKeys[gr.RowIndex].Value + ",";
                    }
                }
                if (strDel != "")
                {
                    QYFY.BLL.Main.Worker bll = new QYFY.BLL.Main.Worker();
                    //去掉最后的逗号
                    strDel = strDel.Substring(0, strDel.Length - 1);
                    //删除用户
                    bll.Delete(" WorkerID in (" + strDel + ")");
                    //删除用户角色表中的数据
                    //QYFY.BLL.Accounts.Accounts_UserRoles bllur = new QYFY.BLL.Accounts.Accounts_UserRoles();
                    //bllur.Delete(" UserID in (" + strDel + ")");
                    //重新绑定数据
                    this.AspNetPager.RecordCount = bll.GetCount(this.lblStrWhere.Text);
                    this.BindGridView();
                }
            }
      

  4.   

    我的一个做法跟3楼类似。但出错说:repeater没Rows对象不知为什么,晕
      

  5.   

    Repeater自定义分页 + 排序 + 全选删除(3)http://blog.csdn.net/amandag/archive/2008/08/05/2773541.aspx