Windows窗体C#中的Datagrid视图

时间:2015-07-22 14:44:14

标签: c# winforms datagridview datagrid

您好我在C#窗体中使用Datagridview,在数据网格中查看我使用的是数据网格链接列,示例代码在这里

  DataGridViewLinkColumn Editlink = new DataGridViewLinkColumn();
            Editlink.UseColumnTextForLinkValue = true;
            Editlink.HeaderText = "Edit";
            Editlink.DataPropertyName = "lnkColumn";
            Editlink.LinkBehavior = LinkBehavior.SystemDefault;
            Editlink.Text = "Edit";
            gvJobs.Columns.Add(Editlink);

它给了我输出enter image description here

很好但是当我重新加载网格时,它给出的不是通过给数据源null来删除现有的编辑列。示例代码和输出在这里。

 gvJobs.DataSource = null;
            var jobs = (from v in General.ent.Jobs
                        where (v.MRNumber == (string)txtMrNumber.Text)
                        select new
                        {
                            MRNumber = v.MRNumber,
                            NumberOfDocuments = v.noofdocuments,
                            PageNumbers = v.PageNumbers,
                            JobStatus = v.job_status,
                            ScannerType = v.scanner_type,
                            DocumentType = v.Documenttype.document_name,
                            CreatedDate = v.received_date

                        }).ToList();
            gvJobs.DataSource = jobs;
            DataGridViewLinkColumn Editlink = new DataGridViewLinkColumn();
            Editlink.UseColumnTextForLinkValue = true;
            Editlink.HeaderText = "Edit";
            Editlink.DataPropertyName = "lnkColumn";
            Editlink.LinkBehavior = LinkBehavior.SystemDefault;
            Editlink.Text = "Edit";
            gvJobs.Columns.Add(Editlink);

并输出enter image description here

我想在重新加载网格后输出图像1。

2 个答案:

答案 0 :(得分:1)

您必须在重新加载网格时删除该列,或者在重新加载时避免将该列添加到网格中。

您可以使用

gvJobs.Columns.Remove()

为了删除编辑列

for (int j=0;j<gvJobs.Columns.Count ;j++)
{
    if (gvJobs.Columns[j].HeaderText == "Edit")
    {    
         DataGridViewLinkColumn Editlink = new DataGridViewLinkColumn();
         Editlink.UseColumnTextForLinkValue = true;
         Editlink.HeaderText = "Edit";
         Editlink.DataPropertyName = "lnkColumn";
         Editlink.LinkBehavior = LinkBehavior.SystemDefault;
         Editlink.Text = "Edit";
         gvJobs.Columns.Add(Editlink);
     }


 }

我希望这可以帮助你。

答案 1 :(得分:0)

gvJobs.Columns.Clear();

对我有用。