I believe that databinding on every postback is the cause but that's not something that I can change right now, same goes with the autogeneratedcolumns setting. I'm not sure if I know what you mean about 2 way binding. If you meanam I using Bind instead of Eval in my HTML, then yes. And the result of your code is no different than my version or what I was doing before, which was just using the findcontrol method, and that just returns what was in the grid when it was first binded to the database on page load. Yes ok i think i know what you are probably doing wrong. I'd like to know if there are any other ways to retrieve the new values? I have been using the web site successfully for just over a year, and I am presently using a Select button in the row to launch a detailsview, and I edit the database that way. Net a year and a half ago, and VB programmer forever before that, but I feel pretty confident in this large and powerful website I have created, but the users don't like the details view have expressed a desire to edit on the fly in the gridview. My user base has a hold of management's ear, and my management wants to dump ASP. This could be the straw that broke the camel's back - a person's job hangs in the balance - MINE!! If you are databinding in page_load then you need to only do it if(! Visible = True Catch ex As Exception Track Projects. Close() End Using Hi Lite Rows() End Sub Private Sub Hi Lite Rows() 'THE FOLLOWING CODE THAT INDICATES SPECIFIC COLUMN NUMBERS IS DETERMINED 'BY THE HTML ASPX CODE THAT DETERMINES HOW THE GRIDVIEW LOOKS Dim i Col Date As Integer = 7, i Row As Integer, i Col Proj Stat As Integer = 9 ' Msg Box(Track Projects. To String) ' & vb Cr Lf & vb Cr Lf 'Val(CDate(Track Projects. Auto Generate Edit Button = True Then i Col Date = 8 i Col Proj Stat = 10 End If Dim lbl Text As Label For i Row = 0 To Track Projects. Edit Index Then i Row = 1 If i Row = Track Projects. Count Then Exit For lbl Text = Direct Cast(gv Track Projects.
I generally have to take it even a step further than that..
Did I mention I am getting bored of grids, data and databases and am going to spend the holiday break convincing myself I can learn to be a game programmer... (i.e., employee ID: you can convert an emp ID field in your gridview to a templatefield then delete the label in the edit Item Template then insert a dropdownlist then bind the dropdownlist to a datasource that binds you're to your employee table in your database.
Am I being clear, or am I being presumtuous in my undertsnading of the use of datasources? *I believe your asking us if you're precluded from binding a dropdownlist (for example) to a datasource from within a templatefield in your gridview, and if thats what your asking... And all I'm saying is that you YES can use another datasource.
There must be something fundamentally wrong that some of us are doing that is causing this and the fact that it's not happening to others, and they don't know the solution. this only works when the databind happends after the updating. My suggestion to you would be to either subclass gridview, and expose the Extract Row Values though a public method or stick everything you need in Data Keynames. Extract Values From Cell(dict Values, dcfc Cell, gv Row. Row State, True) End If Next control Dim return Values = New Dictionary (Of String, Object )() For Each de As Dictionary Entry In values return Values(CStr(de. Value Next de Return return Values End Function I appreciate your quick and prompt reply, which I looked at from home last night, but was not able to test it until just now, and really the only different was adding the Try Cast. You're trying to extract the values from the edit row right?
It'd be great if you could provide some sample code here. I am using the Row Updating event to programmatically update my database, but the new values are already gone by the time the Row Updating event is fired. I have found several forum postings detailing this but no one has posted their solution. Another way to get values out of the gridview is to put the interesting fields in Data Key Names, which can be a very ugly solution because the viewstate grows as a result of this.