Alright here is my issue.
In my application I am currently building TabControl based on dates from my database. I then dynamically build DataGridView from another query inside the TabControl. I am wanting to place a Edit button on each record on the DataGridView. When I click the button I am able to determine the RowIndex and ColumnIndex in the DataGridViewCellEventHandler. My question is, how do I determine the value in Column1? The button is in Column0. Since I am building the DataGridView dynamically, I am not sure what the name is for each DataGridView. Below is the code for building the TabControl/DataGridView and the ClickEvenHandler.
private void LoadTabs()
{
int tabCount = tabMain.TabPages.Count;
for (int i = 0; i < tabCount; i++)
{
//if (tabMain.TabPages.Name.Equals(tabToRemove, StringComparison.OrdinalIgnoreCase))
//{
tabMain.TabPages.RemoveAt(0);
//}
}
try
{
//SqlDataReader myReader = null;
try
{
myConnection.Open();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
SqlDataAdapter da = new SqlDataAdapter("Select Distinct EDATE From TABLE Where PROCESS is NULL Order By EDATE", myConnection);
DataSet dsPubs = new DataSet("Pubs");
da.FillSchema(dsPubs, SchemaType.Source, "EmployeeDeduction");
da.Fill(dsPubs, "EmployeeDeduction");
DataTable tblEmployeeDeduction;
tblEmployeeDeduction = dsPubs.Tables["EmployeeDeduction"];
foreach (DataRow drCurrent in tblEmployeeDeduction.Rows)
{
string strSQL = "Select 'ID'=a.EMPNO,'Last Name'=LTRIM(RTRIM(b.Last_Name)),'First Name'=LTRIM(RTRIM(b.First_Name))," +
"'Ded Date'=LEFT(LTRIM(RTRIM(a.EDATE)),12),'DESC'=a.DEDDESCR,'Amount'=Sum(a.DEDAMOUNT),'GL #'=a.GLNUMBER " +
"From dbo.TABLE1" +
"as a join TABLE2 as b on a.EMPNO = b.Empl_No " +
"Where Process is null AND EDATE = '" + drCurrent[0].ToString() + "'" +
" Group By a.EmpNo,b.Last_Name,b.First_Name,a.EDate,a.DEDDESCR,a.GLNumber Order By 1 ";
SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQL, myConnection);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
// The tabpage.
TabPage newPage = new TabPage(drCurrent[0].ToString());
newPage.Text = drCurrent[0].ToString();
DataGridView dataGridView1 = new DataGridView();
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.AutoSize = true;
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
dataGridView1.Columns.Add(btn);
btn.HeaderText = "Edit";
btn.Text = "Edit";
btn.Name = "btn";
btn.UseColumnTextForButtonValue = true;
dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
dataGridView1.Dock = DockStyle.Fill;
dataGridView1.DataSource = table.DefaultView;
newPage.Controls.Add(dataGridView1);
// Add to the tab control.
tabMain.TabPages.Add(newPage);
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//WANTING TO DETERMINE WHAT VALUE IS IN COLUMN1///
}
In my application I am currently building TabControl based on dates from my database. I then dynamically build DataGridView from another query inside the TabControl. I am wanting to place a Edit button on each record on the DataGridView. When I click the button I am able to determine the RowIndex and ColumnIndex in the DataGridViewCellEventHandler. My question is, how do I determine the value in Column1? The button is in Column0. Since I am building the DataGridView dynamically, I am not sure what the name is for each DataGridView. Below is the code for building the TabControl/DataGridView and the ClickEvenHandler.
private void LoadTabs()
{
int tabCount = tabMain.TabPages.Count;
for (int i = 0; i < tabCount; i++)
{
//if (tabMain.TabPages.Name.Equals(tabToRemove, StringComparison.OrdinalIgnoreCase))
//{
tabMain.TabPages.RemoveAt(0);
//}
}
try
{
//SqlDataReader myReader = null;
try
{
myConnection.Open();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
SqlDataAdapter da = new SqlDataAdapter("Select Distinct EDATE From TABLE Where PROCESS is NULL Order By EDATE", myConnection);
DataSet dsPubs = new DataSet("Pubs");
da.FillSchema(dsPubs, SchemaType.Source, "EmployeeDeduction");
da.Fill(dsPubs, "EmployeeDeduction");
DataTable tblEmployeeDeduction;
tblEmployeeDeduction = dsPubs.Tables["EmployeeDeduction"];
foreach (DataRow drCurrent in tblEmployeeDeduction.Rows)
{
string strSQL = "Select 'ID'=a.EMPNO,'Last Name'=LTRIM(RTRIM(b.Last_Name)),'First Name'=LTRIM(RTRIM(b.First_Name))," +
"'Ded Date'=LEFT(LTRIM(RTRIM(a.EDATE)),12),'DESC'=a.DEDDESCR,'Amount'=Sum(a.DEDAMOUNT),'GL #'=a.GLNUMBER " +
"From dbo.TABLE1" +
"as a join TABLE2 as b on a.EMPNO = b.Empl_No " +
"Where Process is null AND EDATE = '" + drCurrent[0].ToString() + "'" +
" Group By a.EmpNo,b.Last_Name,b.First_Name,a.EDate,a.DEDDESCR,a.GLNumber Order By 1 ";
SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQL, myConnection);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
// The tabpage.
TabPage newPage = new TabPage(drCurrent[0].ToString());
newPage.Text = drCurrent[0].ToString();
DataGridView dataGridView1 = new DataGridView();
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.AutoSize = true;
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
dataGridView1.Columns.Add(btn);
btn.HeaderText = "Edit";
btn.Text = "Edit";
btn.Name = "btn";
btn.UseColumnTextForButtonValue = true;
dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
dataGridView1.Dock = DockStyle.Fill;
dataGridView1.DataSource = table.DefaultView;
newPage.Controls.Add(dataGridView1);
// Add to the tab control.
tabMain.TabPages.Add(newPage);
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//WANTING TO DETERMINE WHAT VALUE IS IN COLUMN1///
}