获取CheckBox在GridView模板列中的值 aspx: <asp:GridView ID="gvdeptusers" runat="server" DataKeyNames="id" AutoGenerateColumns="False" Width="100%" ShowHeader="False" OnRowDataBound="gvdeptusers_RowDataBound"> <Columns> <asp:BoundField DataField="names" > <ItemStyle Width="8%" HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="deptname" > <ItemStyle Width="10%" HorizontalAlign="Center" /> </asp:BoundField> <asp:TemplateField> <ItemTemplate> <asp:HiddenField ID="hdtype" runat="server" Value='<%# Eval("user_classid") %>' /> <asp:CheckBox ID="cbusers" Text='<%# Eval("username") %>' runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns></asp:GridView> cs: string idStr = ""; foreach (GridViewRow row in this.gvdeptusers.Rows) { if (((CheckBox)row.FindControl("cbusers")).Checked == true) { idStr += this.gvdeptusers.DataKeys[row.RowIndex].Value + "<br>"; } } Response.Write(idStr); Response.End(); 绑定选定值: protected void gvdeptusers_RowDataBound(object sender, GridViewRowEventArgs e) { int strid = e.Row.RowIndex; CheckBox cbusers = (CheckBox)e.Row.FindControl("cbusers"); if (cbusers != null) { string strhdtype = ((HiddenField)e.Row.FindControl("hdtype")).Value; if (strhdtype != "1" && strhdtype != "8") cbusers.Checked = true; } } 很简单的代码,怕忘记所以记录于此。