日期:2014-05-17  浏览次数:21012 次

CheckBox 第二次选中提交不了
CheckBox 选中后提交第一次的时候系统能够正确处理(例如:待命 下岗) 返回主页面后 再选中CheckBox 点击 待命 或下岗按钮就不执行相应操作 应该是勾选了 但是CheckBox还不是选中的 怎样 修改呢 请高手指点下

------解决方案--------------------
楼主是要还原上一次选择的状态??那你要保存数据起来才行了,然后读取数据匹配当前的项,匹配设置checked
------解决方案--------------------
后台没有CheckBox的事件,不用加AutoPostBack="true" ,这个完全没有必要。

另外,不是你说的那样的,下面是一个例子直接拷贝粘贴测试
HTML code
<%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  public System.Data.DataTable GetData()
  {
    System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
    dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
    dataTable1.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));
    for (int i = 0; i < 8; i++)
    {
      dataTable1.Rows.Add(i, "测试" + i.ToString());
    }
    return dataTable1;
  }

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      GridViewBind();
    }
  }

  protected void GridViewCar_RowDataBound(object sender, GridViewRowEventArgs e)
  {

  }

  // 待命
  protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  {
    //currentRow.Cells[3].Text = SateToPicPerson(p.State);
    //得到所选中的
    foreach (GridViewRow row in GridViewCar.Rows)
    {
      CheckBox chkSelect = row.FindControl("chkSelect") as CheckBox;
      if (chkSelect.Checked)
      {
        Response.Write("<li>选中的 userId = " + GridViewCar.DataKeys[row.RowIndex].Value.ToString());
      }
    }
    GridViewBind();
  }

  // 下岗
  protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
  {
    //得到所选中的
    foreach (GridViewRow row in GridViewCar.Rows)
    {
      CheckBox chkSelect = row.FindControl("chkSelect") as CheckBox;
      if (chkSelect.Checked)
      {
        Response.Write("<li>选中的 userId = " + GridViewCar.DataKeys[row.RowIndex].Value.ToString());
      }
    }
    GridViewBind();
  }

  protected void GridViewBind()
  {
    GridViewCar.DataSource = GetData();
    GridViewCar.DataBind();
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <asp:GridView ID="GridViewCar" runat="server" AutoGenerateColumns="False" Width="100%"
    DataKeyNames="UserId" CssClass="bind_vichle" BackColor="White" Font-Size="0.8em"
    OnRowDataBound="GridViewCar_RowDataBound">
    <HeaderStyle HorizontalAlign="Center" Height="15px" BackColor="#2FA2E5" />
    <RowStyle HorizontalAlign="Center" Height="14px" />
    <Columns>
      <asp:TemplateField>
        <ItemTemplate>
          <asp:CheckBox ID="chkSelect" runat="server" />
        </ItemTemplate>
      </asp:TemplateField>
      <asp:BoundField DataField="UserId" HeaderText="编号"></asp:BoundField>
      <asp:BoundField DataField="Title" HeaderText="车牌号"></asp:BoundField>
      <asp:BoundField HeaderText="类型"></asp:BoundField>
      <asp:BoundField HeaderText="状态"></asp:BoundField>
    </Columns>
  </asp:GridView>
  <asp:ImageButton ID="ImageButton1" runat="server" ToolTip="待命" ImageUrl="