c# - 计算 GridView 中选中的复选框

标签 c# asp.net checkbox

我在 GridView 中有几个复选框和一个按钮。

我需要计算选中的复选框数,并使用选中的复选框数更新 doTable DB MySQL 的字段计数器。

我试过这个解决方案,但是对于选中的复选框,我在更新中有这个输出,例如已选中 3 个复选框。

counter
1
2
3

这个输出怎么办?

counter
3
3
3

如有任何帮助,我们将不胜感激。

protected void btnUpdate_Click(object sender, EventArgs e)
{
    int counter = 0;

    foreach (GridViewRow row in GridView1.Rows)
    {
        CheckBox chkRow = (row.Cells[0].FindControl("chkSelect") as CheckBox);

        if (chkRow.Checked)
        {
            counter = counter + 1;
            UpdateProduct(counter);

        }
    }


private void UpdateProduct(int counter)
{
    string sql = String.Format(@"Update doTable set 
                                 counter = {0}; ",
                                 counter.ToString());
    try
    {
        conn.Open();
        OdbcCommand cmd = new OdbcCommand(sql, conn);
        cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
    finally
    {
        conn.Close();
    }      
}

最佳答案

所以你想用总计数更新行?然后先计算总计数:

int totalCount = GridView1.Rows.Cast<GridViewRow>()
    .Count(r => ((CheckBox)r.FindControl("chkSelect")).Checked);
// maybe: if(totalCount > 0)
UpdateProduct(totalCount);

请注意,使用此方法您根本不需要 foreach

您需要在文件顶部添加using System.Linq;

关于c# - 计算 GridView 中选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25264066/

相关文章:

c# - 在现有应用程序中添加 Azure AD 身份验证

c# - 如何将 GameLift 与 Unity3d 集成作为游戏客户端

c# - 从后面的代码访问 formView 页脚模板内的 userControl

asp.net - ASP.net MVC 中的 viewstate 等价物是什么

android - 单击列表项更改复选框状态?

c# - Stream.read 给出损坏的字节

c# - 如何删除 ASP.NET Web 服务中的特殊字符

javascript - 使用 Javascript 访问嵌套的 ListView 文本框

javascript - 在下拉列表中单击复选框时,复选框保持选中状态

c# - Razor 复选框未绑定(bind)到模型