hello Marcie, thanks for all your help today..! ok, maybe i'm going about this all wrong, as i fix one thing only to be not able to do something else. i implemented your suggestion and it worked. i set the DataKeyField with the field name from the table the data is coming from and that worked. it probably wasn't set since i just make a data connection, make a SQL query and populate the grid. now it doesn't like the next line of code which is supposed to pull the data from the cell\Textbox that's being edited. but i get 'arguement out of range'. so i think it can't find the text box. string newResValue; TextBox textBox; textBox = (TextBox)(e.Item.Cells[3].Controls[0]); maybe i should give a little background here as perhaps i'm doing this all wrong. i'm creating all the columns programatically except for the Edit column (property builder for that). they are all BoundColumns. as stated before i make a SQL query and get a dataset from a Data tier i have here and populate the columns with the BoundColumn.DataField property. i'm doing this all manually as that's the advice articles i've read give, plus i need the ability to control the width of the columns. see below for how i'm doing this. string strSQL = "SELECT RESOURCES.ResName,RESOURCES.ResValue,RESOURCES.ResComment FROM RESOURCES INNER JOIN PROJECTID ON RESOURCES.ProjectIdentifier = PROJECTID.ProjectIdentifier "+ "WHERE (PROJECTID.ProjectName = '"+strProjectName+"')"+ "ORDER BY RESOURCES.DateCreated"; dataSet = dataAccess.GetDataSet(strSQL,conn); DataTable dt = dataSet.Tables[0]; //populate datagrid this.DataGrid1.AutoGenerateColumns = false; System.Web.UI.WebControls.BoundColumn column1 = new BoundColumn(); column1.HeaderText = "Resource Name"; column1.DataField = "ResName"; column1.Visible= true; column1.ReadOnly = true; this.DataGrid1.Columns.Add(column1); i just repeat the code to create the other columns leaving the last column to be edited. however, doing it this way doesn't seem to allow me to create TemplateColumns and pass them data like i do with the BoundColumns as there's no DataField property. so i seem to be caught somewhere in the middle ground of doing things programmatically and letting VS do it by setting some properties..:( your thoughts are greatly welcomed. thanks, Orion ps. if you've gone home already, have a good weekend and happy valentines.. Orion orion.buttigieg@Teamplate.com www.Teamplate.com