【问题标题】:placing checkbox in gridview in c#在c#的gridview中放置复选框
【发布时间】:2018-02-01 19:38:02
【问题描述】:

我需要在 c# 中将复选框列添加到我的 gridview。

我有我的代码:

               foreach (GridViewRow objRow in GrdDynamicControls.Rows)
                {
                    if (dttableDetails.Columns.Contains(strColumnName))
                    {
                        position = dttableDetails.Columns[strColumnName].Ordinal;

                        if (strtype.Contains("CheckBox"))
                        {
                            try
                            {

                              GrdDynamicControls.Rows[i].Cells.RemoveAt(position);

                                chkCheckBox.ID = strControlName;

                                chkCheckBox.AutoPostBack = true;
                                tcCheckCell.Controls.Add(chkCheckBox);

                                 objRow.Cells.Add(tcCheckCell);
                              //  GrdDynamicControls.Rows[i].Cells.AddAt(position, tcCheckCell);
                            }
                            catch { }
                            chkCheckBox.CheckedChanged += new EventHandler(chkCheckBox_CheckedChanged);



                        }


                    }
            }

但这会覆盖 gridview 中每个 objrow 的复选框。我无法为 gridview.pls 中的所有行获取该特定列的复选框...

【问题讨论】:

  • 没有动态创建控件。它不是唯一的复选框。甚至会得到下拉列表。因此对于 gridview 中的动态绑定,我使用了代码来创建复选框

标签: c# asp.net gridview checkbox gridviewrow


【解决方案1】:

为什么不在标记中使用 TemplateField 控件,而是在模板中定义复选框?会更容易管理...

<asp:GridVIew ...>

  <Columns>
     <asp:TemplateField ..>
        <asp:CheckBox .. />
     </asp:TemplateField>
  </Columns>
</asp:GridVIew>

只需在标记中设置所有内容

【讨论】:

    【解决方案2】:

    尝试在 gridview 上使用 OnRowDataBound 事件。您可以使用它来指定要对每一行使用的控件。这是一个用示例解释它的链接。

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

    【讨论】:

      【解决方案3】:

      在标记中使用 TemplateField 控件,并在模板中定义复选框:

      <asp:TemplateField HeaderText="Delete" ItemStyle-Width="39px">
          <ItemTemplate>
              <center>
                  <asp:CheckBox ID="chkDelete" runat="server" />
              </center>
          </ItemTemplate>
      </asp:TemplateField>
      

      【讨论】:

        猜你喜欢
        • 2011-09-09
        • 2015-09-17
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 2020-12-23
        相关资源
        最近更新 更多