0

我将数据表值绑定到gridview。我已经在 aspx 页面中永久添加了三个模板字段列,并通过使用 itemplate 接口创建列来添加两个动态复选框列。一切正常,直到数据绑定。但我想从数据表值绑定复选框值。如果 datatable 值为 true ,则选中复选框值。为此,我尝试了以下代码。

DataTable bindclassattendance = inter.getstudentattendresult(comp);

Createcolumn();

if (bindclassattendance.Rows.Count>0 )
{
Classattendancegrid.DataSource = bindclassattendance;
    Classattendancegrid.DataBind();

    for (int i = 0; i < bindclassattendance.Rows.Count; i++)
    {
        bool check1 = Convert.ToBoolean(bindclassattendance.Rows[i]["AM"].ToString());
        if (check1)
        {
            CheckBox chk = Classattendancegrid.Rows[i].FindControl("AM") as CheckBox;
            chk.Checked = true;
        }
        else
        {
            CheckBox chk = Classattendancegrid.Rows[i].FindControl("AM") as CheckBox;
            chk.Checked = false;
        }
        bool check2 = Convert.ToBoolean(bindclassattendance.Rows[i]["PM"].ToString());
        if (check2)
        {
            CheckBox chk = Classattendancegrid.Rows[i].FindControl("PM") as CheckBox;
            chk.Checked = true;
        }
        else
        {
            CheckBox chk = Classattendancegrid.Rows[i].FindControl("PM") as CheckBox;
            chk.Checked = false;
        }

    }

动态列Createcolumn()是:

private void Createcolumn()
{
    TemplateField amtemp = new TemplateField();
    amtemp.ShowHeader = true;
    amtemp.HeaderText = "AM";
    amtemp.ItemTemplate = new gridviewtemplate(DataControlRowType.DataRow, "AM", "AM", "CheckBox");
    Classattendancegrid.Columns.Add(amtemp);

    TemplateField pmtemp = new TemplateField();
    pmtemp.ShowHeader = true;
    pmtemp.HeaderText = "PM";
    pmtemp.ItemTemplate = new gridviewtemplate(DataControlRowType.DataRow, "PM", "PM", "CheckBox");
    Classattendancegrid.Columns.Add(pmtemp);
}

并发生上述错误。如何解决它,我从未使用任何名称作为“cb1”。该错误发生在下一行

CheckBox chk = Classattendancegrid.Rows[i].FindControl("AM") as CheckBox;

我的 aspx 页面是

<asp:GridView ID="Classattendancegrid" runat="server" 
              AutoGenerateColumns="False" onrowdatabound="Classattendancegrid_RowDataBound" 
              style="margin-left: 184px; margin-top: 27px">
  <Columns>
      <asp:TemplateField HeaderText="AdmissionNumber">
          <ItemTemplate>
              <asp:Label ID="lbladmissionnumber" runat="server" 
                  Text='<%#Eval("AdmissionNumber") %>'></asp:Label>
          </ItemTemplate>
      </asp:TemplateField>
      <asp:TemplateField HeaderText="RollNumber">
          <ItemTemplate>
              <asp:Label ID="lblrollno" runat="server" Text='<%#Eval("Rollnumber") %>'></asp:Label>
          </ItemTemplate>
      </asp:TemplateField>
      <asp:TemplateField HeaderText="StudentName">
          <ItemTemplate>
              <asp:Label ID="lblStudentName" runat="server" Text='<%#Eval("Name") %>'></asp:Label>
          </ItemTemplate>
      </asp:TemplateField>
</column>
</asp:GridView)
4

0 回答 0