在c#中的gridview中放置复选框

时间:2010-06-23 13:30:02

标签: c# asp.net gridview checkbox gridviewrow

我需要在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帮助中所有行的特定列的复选框...

3 个答案:

答案 0 :(得分:1)

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

<asp:GridVIew ...>

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

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

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