【问题标题】:Gridview row idGridview 行 ID
【发布时间】:2017-03-22 11:22:41
【问题描述】:

我有 Gridview 已满数据,我需要在检查某些行时我可以按下按钮并相应地更改数据,我可以在检查所有行但我找不到将我的查询与一或多行的 id 连接起来的方法。

    protected void UsedForButton_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            var chk = row.FindControl("InStockCbx") as CheckBox;
            if (chk.Checked)
            {
                //using (WorkDBEntities db = new WorkDBEntities())
                //{

                //    WorkTable table = new WorkTable();
                //    table.InStock = 0;

                //    db.WorkTables.Add(table);
                //    db.SaveChanges();    
                //}
                string query = "UPDATE WorkTable SET InStock = 0 WHERE Id = " ???;

                SqlCommand comm = new SqlCommand(query, conn);
                conn.Open();
                comm.ExecuteNonQuery();
                conn.Close();
            }

【问题讨论】:

  • 你能添加ASPX部分吗?所以我很容易理解。需要更多详细信息

标签: c# asp.net gridview checkbox


【解决方案1】:

@Nemanja,您想获取每条记录的 ID,那么只有您才能根据 ID 进行更新。首先将记录的ID绑定到网格中,并尝试在按钮点击事件中获取ID

【讨论】:

    【解决方案2】:

    试试这个:

    protected void UsedForButton_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox checkbox1 = (CheckBox)row.FindControl("InStockCbx");
            if (checkbox1.Checked)
            {
                int id = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value.ToString());           
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString);
                SqlCommand cmd = new SqlCommand ("UPDATE WorkTable SET InStock = 0 WHERE Id = @Id"", con);
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.Add("@Id", SqlDbType.Int).Value = id;
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                cmd.Dispose();
            }
        }
    }
    

    注意:您需要在 .aspx 模板中指定数据键,如下所示:

    <asp:GridView ID="GridView1" runat="server" DataKeyNames="id" ...>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多