Billz
Billz

Reputation: 1097

Datagrid view in Windows Form C#

Hello I am using Datagridview in C# windows form , In data grid View I am using Data grid Link columns, example code is here

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

and it gives me output enter image description here

its fine but When I reload the grid it gives doesnot remove the existing edit column by giving data source null. Example Code and output is here.

 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);

and output enter image description here

I want Image 1 output after reloading the grid.

Upvotes: 0

Views: 1117

Answers (2)

Billz
Billz

Reputation: 1097

gvJobs.Columns.Clear();

is worked for me.

Upvotes: 0

Shruti
Shruti

Reputation: 62

You will either have to remove the column while reloading your grid or avoid adding the column to the grid while reloading it.

You could use

gvJobs.Columns.Remove()

inorder to remove the Edit Column

or

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);
     }


 }

I hope this helps you out.

Upvotes: 1

Related Questions