Reputation: 1097
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);
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);
I want Image 1 output after reloading the grid.
Upvotes: 0
Views: 1117
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