如何在GridView中创建动态CheckBox?

时间:2017-07-26 17:02:30

标签: c# asp.net gridview checkbox

我有coords = [[ -122.68181, 45.523713333333333 ], [ -122.681848333333363, 45.52369833333335 ], [ -122.681996666666691, 45.523683333333338 ], [ -122.682078333333351, 45.523733333333332 ], [ -122.681916666666694, 45.523736666666665 ], [ -122.6815766666667, 45.523753333333346 ], [ -122.68182333333M3355, 45.523741666666659 ], [ -122.681823333333355, 45.523753333333339 ], [ -122.681656666666683, 45.52375 ], [ -122.68162833333335, 45.523738333333334 ], [ -122.681936666666701, 45.52373 ]] function listCoords() { for (var i=0, l=coords.length; i<l; i++) { console.log(coords[i]) } } setInterval(function(){ listCoords() }, 5000); ,显示GridView列表。如下图所示。如果列中有多个Approvers,我需要显示CheckBoxes。可能吗?如果是,那么我该如何实现呢?

enter image description here

例如Approvers部分在第一行中有多个审批者名称,我应该为其显示CheckBoxes。

网格中显示的数据在Approvers中可用,而多个DataTable是单行的一部分,因此我无法使用Approvers并显示CheckBoxes。

1 个答案:

答案 0 :(得分:0)

以下是解决方案。我可以在方法OnRowDataBound()中实现这一点。不确定这是否是最佳方式。

protected void grdApproverDetails_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string ApproverName  = ((Label)e.Row.Cells[2].FindControl("lblANgrd")).Text;

                string[] approvers = ApproverName.Split(';');
                if (approvers.Count() > 1)
                {
                    ((Label)e.Row.Cells[2].FindControl("lblANgrd")).Text = "";

                    int i = 0;
                    foreach (var item in approvers)
                    {
                        CheckBox ckb = new CheckBox();
                        ckb.Text = item;
                        ckb.ID = i.ToString();
                        ckb.ID = "approvernamesdynamic_"+i.ToString();
                        ckb.Checked = true;
                        e.Row.Cells[2].Controls.Add(ckb);
                        i++;
                    }
                }

            }
        }