Basically, I have a hidden field in the datagrid which stores 0 or 1. If it&#039;s a 1, then the user can edit the row. My solution worked up to a point, but a problem arises due to the fact I have a dropdownbox in the footer, which has an autopostback in order to populate a second column in the footer based on selection. When you select something, and the event fires, the datagrid then seems to reset itself. See the code below for a better explanation of what I mean.<BR><BR>I set up an EditCommandColumn, and in my code behind file, I did this:<BR><BR>-----------------------------------------------------<BR>Sub dgMyTasks_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)<B R><BR> If e.Item.DataItem Is Nothing Then Exit Sub<BR><BR> If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then<BR><BR> &#039; Get the value of the isUserTask field.<BR> Dim isUserTask As String = CType(DataBinder.Eval(e.Item.DataItem, "isUserTask"), String)<BR><BR> If isUserTask = "0" Then<BR> &#039; This sets the cell to empty, so the edit option is<BR> &#039; not shown - but does stay empty when the postback<BR> &#039; is fired<BR> <BR> e.Item.Cells(0).Text = ""<BR><BR> &#039; As a test, I tried this. This disables the cell<BR> &#039; but the link would still be clickable if I hadn&#039;t<BR> &#039; written the line above. The difference is, that<BR> &#039; when the postback fires, this is still disabled,<BR> &#039; but the text reappears. WHY!?!?!?<BR><BR> e.Item.Cells(0).Enabled = "False"<BR><BR> End If<BR><BR> End If<BR><BR>End Sub<BR>-----------------------------------------------<BR><BR>The binding of this datagrid is in an IF NOT Page.IsPostBack block, so it only fires the first time the page loads. I thought I might be able to force it by re-binding the datagrid after the mentioned postback, by taking it out of that IF block, but although it works when the page loads the first time, I then get another error message ("The IListSource does not contain any data sources.") when the postback fires.<BR><BR>rsTasks = dMyTasksConnect.GetTaskForUsers(sUser)<BR>dgMyTask s.DataSource = rsTasks<BR>dgMyTasks.DataBind()<BR>rsTasks.Close() <BR>