Link to home
Start Free TrialLog in
Avatar of dominicwong
dominicwong

asked on

How to set cells in datagridview to readonly and BackColor upon construction

Hi experts
I'd tried to set some cells in a datagridview to readonly and their BackColor to grey upon construction of a UserControl. But they didn't take effect.

I'd done some searches. It was said that it needs to be done inside "CellBeginEdit". My question is how to get that event to fire as part of the construction. Any other suggestion is welcomed.

Thanks in advance.
Avatar of Pratima
Pratima
Flag of India image

check this fro readonly

http://forums.asp.net/t/1072584.aspx/1

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        If e.Row.RowState = DataControlRowState.Edit And (e.Row.RowIndex = 0 Or e.Row.RowIndex = 1) Then
            e.Row.RowState = DataControlRowState.Normal
        End If
Avatar of dominicwong
dominicwong

ASKER

Thanks pratima_mcs.

I am using C# .NET, and I can't find the equivalent of your suggestion. The two lines I currently have in my code are:
They don't work during construction but can only work during cell edit mode.
dgv.Rows[rowIndex].Cells["columnName"].ReadOnly = true;
dgv.Rows[rowIndex].Cells["columnName"].Style.BackColor = Color.LightGray;
By the way, my dgv is bound to a DataSource.
Can you explain what you mean by "They don't work during construction but can only work during cell edit mode."?
What I have is a dgv. This dgv is on a UserControl and is displayed only when a user initiated it (eg. clicking a treenode). ie. at run-time.

This dgv consists of two columns, and is data-binded to a DataSource.
Dependent upon the value on the left-hand side column, the corresponding entry on the right-hand column will be made either editable with a white background, or readonly with a grey background.

What I meant by "don't work during construction" is when user clicks a node to initiate the UserControl construction. It constructs the dgv, creates the data-binding, checks each entry on the left-hand side column and sets the right-hand side column accordingly.
Unfortunately, making them readonly and setting the background color did not take any effect at all.

On the other hand, after it is constructed when I edit a cell on the left-hand side column (eg. changing selection), I could make the corresponding cell on the right-hand side readonly with grey background color.

Your help will be appreciated. Thanks in advance.
I'd tried out with a simple example but this one works fine.
Any idea what could cause the setting on the properties BackColor and ReadOnly not to take any effect?
ASKER CERTIFIED SOLUTION
Avatar of dominicwong
dominicwong

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It resolved the issue