Avatar of lapucca
lapucca
 asked on

Got error when retrieving the current text value out of a gridview control during gridview Updating event.

Hi, I'm using vs2012.
I used the code form msdn, http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting%28v=vs.110%29.aspx

However, I'm getting out range error in run time.    Attached is my code snipet.  The error happens at
 "var sam = ((TextBox)(editRow.Cells[1].Controls[0])).Text;"

I think that the code is taking the row that is being edited (editRow is correct when I examine the property).  Cell 0 I think is the Edit button on my grid, it shows as the first column.  So cells[1] is the column that I want.  Examine the property of Cells show it has count of 6 and that is correct, 1st one is the Edit button generated by gridview control  however, the error is with Controls[0] being out of range.  

In the aspx file, the 1st cell is a boundfield, code as below
<asp:BoundField DataField ="sAMAccountName" HeaderText="User ID" ReadOnly="True" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle"></asp:BoundField>

Appreciate help here to fix the problem.  Thank you.

I add editRow.Cells to the Watch and there is a cells[1] object.  But I don't know how to expand to see where is the Controls[0] because that's where I get the error.  I'm attaching the screen shot for this too.

further examination by adding to the Watch panel, I found the error is caused because Cells[1].Controlls.count is 0.  I'm also attaching a screen shot for this.  Why is that so?  It does display the data that it's bound to.  How can I fix this?
Thank you.
snipet.txt
grid-err-1.png
grid-err-2.png
C#ASP.NET.NET Programming

Avatar of undefined
Last Comment
lapucca

8/22/2022 - Mon
Miguel Oz

Please post your grid view mark up and/or sample page you are using. (and any other code setting change that differs from sample MSDN)
lapucca

ASKER
Attached is the gridview snipet code from the aspx page.
rowUpdating.txt
grid.txt
Miguel Oz

Any particular reason for not using Text property:
            editUser.GivenName = editRow.Cells[2].Text;
            editUser.Surname = editRow.Cells[3].Text;

Open in new window

All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
lapucca

ASKER
Because that's the example form msdn, in the row upating event.
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting%28v=vs.110%29.aspx 

It does work for all other columns except the User ID column that I get the out of range error.  It's odd that it shows no controls at all for this cell.  I am able to get data back for other columns except this one and the last column which I think it's a date conversion problem.  Any idea on how t fix this?
Miguel Oz

Your user id column is not being mapped into the grid mark up, thus it is not visible and it does not have an associated control.

For data conversion, check if my  proposed solution fix your issue.
lapucca

ASKER
The userid column is  displaying correct data that is bind to the gridview.  If it isn't mapped then how can it display the data? How to tell that it isn't mapped to the grid?  Thank you.
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
lapucca

ASKER
In the gridview smart tab I also see this column configured properly already.  Attached is the screen shot.
smart-Tab.png
lapucca

ASKER
This column is the only ReadOnly column.  I set ReadOnly property to false and now I can retrieve the value.  How to get around this?  I don't want user to edit this column but user id is the key for me to find which record in the collection the user is editing.
ASKER CERTIFIED SOLUTION
Miguel Oz

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
lapucca

ASKER
editRow.Cells[1].Text returns an empty string, ""
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck
lapucca

ASKER
That works perfectly but I had to first change back that column to Read Only.  Thank you Miguel.