How can I get Cell values of grid view? - c#

I have a winform application and after load a data on the gridview, I like to edit some of the cells and click a button. Once button click I like to see the changes on the RichTextBox. How can I do that. Is it possible?

I don't quite understand the 2nd part of your question, but you can read the cellvalue of a gridview with
GridView1.Rows[rowIndex].Cells[cellIndex].Value

Have a look at DataGridView.CellValueChanged Event
The DataGridViewCellEventArgs will give you row and column index that has been updated.

Related

Adding a checkbox to a databound DataGridView

I'm working with DataGridView in C#. I fill it with a table from database using BindingSource. After filling the DataGridView I need to add a row of checkboxes that should be first in the table, to enable data filtering in future.
I mean: for example after clicking "Load" button I get DataGridView filled with 4 columns of data and the first row should consists of checkboxes.
I confused. I use
DataGridViewCheckBoxCell checkCell = new DataGridViewCheckBoxCell();
SourceDGV.Rows.Add(checkCell);
I mean here:
But after clicking load button it says You can't add rows to databounded DataGridView
Sorry if ecxeption translated wrong, I translated it from Ukrainian.
Any help appreciated.
Am afraid, there is no concept of whole rows to be of some type(checkbox in your case) in DataGridView. It is other way around. You can have whole column to be of checkbox type. You'd use DataGridViewCheckBoxColumn for that.
Showing checkboxes in whole row even makes no sense for me: Assume you have data bounded Person object to the DataGridView. So there will be columns like Name, Age, Address. Now, on what basis you show checkbox in the row? How can a Name be converted to a bool(which is what checkbox needs as a value)?
One workaround I can think of would be, handle custom painting, If First row paint checkboxes over there and manually handle their click events. But am pretty sure it's not gonna be easy.

How to select gridview row by simple click

How can I select a row clicking anywhere on that row in gridview? Which gridview event would suit it?
There is no ready-to-use feature. But this guy explains how to do it.
You basically have to extend the DataGrid class and add the event RowClicked to it.

How does one turn a Gridview Row clickable which open a modalpopup in C#?

How does one turn a Gridview Row clickable which open a modalpopup in C#?
I have a gridview with several columns. Each row (the entire width of the row) needs to be clickable which onclick opens a modalpopupextender displaying a popup panal with detailed info on the row.
I have the modalpopupextender & panal working properly when an ImageButton is clicked. However I am removing the ImageButton and replacing its functionality with the row onClick.
I appreciate your time!
You should change the SelectionMode property to FullRowSelect.
You could use the SelectionChanged event to determine the current row selected.
GridView.SelectedRows[0].Index
will give you the index of the selected row. You will have to be sure MultiSelect is disabled as well.
So you have the index of the row selected, so now open whatever form needs opened depending on this index
Check this:
Edit Update GridView With Ajax ModalPopUpExtender Example
This Example explains How To Edit Update GridView Rows Records With Ajax ModalPopUpExtender In Asp.Net Using C# and VB.NET.

How to get selected Row data on edit link click in gridview

I have a gridview with two extra buttons as Edit and Add on each row and I have a click event on each Edit and Add Linkbuttons through which I am opening a ModelViewExtender Dialog. I want when I am clicking on these linkbuttons on each row of gridview, all row data should accessed means Row Data of particular column (cells)from the row of clicked Edit link.
You can get better understanding thorough the below image of GridView, as:
Please suggest me any solution regarding the same.
Thanks in advance.
You have tow ways, either you use the AutoGenereateEdit property to true which will generate these hyperlinks. then on the row editing event you can get all these values easily by using the "e.NewEditIndex" which is the rowIndex of the GridViewRow your editing.
The second way is that you have put these hyperlinks "edit" and "add" as templates, in order to access them you need to parse the the sender object to it's control on the hyperlink click event and then get it's parent which will return the GridViewRow that the control on, which will allow you to get all the values you want from that row like this:
//Debug it and just make sure that tow parents return the GridViewRow
GridViewRow row = (GridViewRow)(((HyperLink)(sender)).Parent.Parent);

Changing the color of one row dynamically in datalist

I have a button search, when the user clicks on the button it retrieves the data from a particular source and binds it to the datalist.
On this event, i need to change the color of a particular column, what column it exactly is will be defiened by the the checkboxes.
So my question is, is there a possibility to change the color of whole the column?
Or do i need to do it cell per cell, and how to do that?
And if im doing it cell by cell how can i determine is this the right cell of a right column?
Thanks in advance
Update:
I tried the way here was advised, but nothing happend, i dont know does it matter if all the data is in table inside the datalist? It has any effect?
FOUND SOLUTION:
The best way to solve that is to add to the td in which you have the data id and the runat="server", this way you can then just in ItemDataBound execute the next code to get the cell:
(e.Item.FindControl("NameOfTheTD") as HtmlTableCell).BgColor = "Green";
Write the below code in the Datalist's ItemCommand
if (e.CommandName == "ThisMonth")
{
System.Drawing.Color colour = System.Drawing.ColorTranslator.FromHtml("#65B3E3");
e.Item.BackColor = colour;
}

Categories