Asp.net asp可以';在datagridview中检测不到选中的项

Asp.net asp可以';在datagridview中检测不到选中的项,asp.net,Asp.net,我有一个带有复选框列的gridview,我的用户可以通过复选框选择该项目,因此我在gridview中添加了一个复选框列: <asp:GridView ID="taminkonandeh" runat="server" CssClass="gv-list-company-col-edit" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" EnableModelValidation="True">

我有一个带有复选框列的gridview,我的用户可以通过复选框选择该项目,因此我在gridview中添加了一个复选框列:

  <asp:GridView ID="taminkonandeh" runat="server" CssClass="gv-list-company-col-edit" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" EnableModelValidation="True">
                                <Columns>
                                     <asp:TemplateField>
                                        <ItemTemplate>
                                                <asp:CheckBox ID="ChTaminKonande" runat="server" />
                                            </ItemTemplate>
                                         </asp:TemplateField>
                                    <asp:BoundField HeaderText="شماره " DataField="companyid" >
                                    <HeaderStyle CssClass="gv-list-company-header" />
                                    <ItemStyle CssClass="gv-list-company-col" />
                                    </asp:BoundField>
                                    <asp:BoundField HeaderText="نام شرکت " DataField="companyname">
                                    <HeaderStyle CssClass="gv-list-company-header" />
                                    <ItemStyle CssClass="gv-list-company-col" />
                                    </asp:BoundField>
                                    <asp:BoundField HeaderText="شماره ثبت " DataField="registrationNumber" >
                                    <HeaderStyle CssClass="gv-list-company-header" />
                                    <ItemStyle CssClass="gv-list-company-col" />
                                    </asp:BoundField>
                                    <asp:BoundField HeaderText="شماره اقتصادی" DataField="noEconomic" >
                                    <HeaderStyle CssClass="gv-list-company-header" />
                                    <ItemStyle CssClass="gv-list-company-col" />
                                    </asp:BoundField>
                                </Columns>
                                <HeaderStyle CssClass="gv-list-company-header" />
                                <RowStyle CssClass="gv-list-company-row"/>
                            </asp:GridView>

我的代码是:

 for (int i = 0; i < taminkonandeh.Rows.Count; i++)
                {

                    CheckBox chinvi = (CheckBox)taminkonandeh.Rows[i].FindControl("ChTaminKonande");
                    if (chinvi != null)
                    {
                        if (chinvi.Checked)
                        {
                            Count++;
                            comid = taminkonandeh.Rows[i].Cells[1].Text;
                            tblAnnouncePriceByCompany objanno = new tblAnnouncePriceByCompany();
                            objanno.letterId = objletter.letterId.ToString();
                            objanno.companyId = comid;
                            objanno.tenderId = Session["letterTenderId"].ToString();
                            db1.tblAnnouncePriceByCompanies.InsertOnSubmit(objanno);

                        }
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "myalert",
                                                      "alert('تامین کننده  ای  انتخاب نشده است ')", true);
                        return;
                    }

            }
for(int i=0;i

但是“chinvi.Checked”条件始终为false,并且我无法检测选择了哪些复选框。

当您在pageload中绑定gridview,并且每次回发都会重新绑定它时,会出现这种情况,并删除发布的值,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    //Code to get datasource
    taminkonandeh.DataSource = myDataSource;
    taminkonandeh.DataBind();
}
您需要将其更改为:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        //Code to get datasource
        taminkonandeh.DataSource = myDataSource;
        taminkonandeh.DataBind();
    }
}