I swear I've done this countless times before, but can't get it to work now. Have a datagrid with edit/cancel/update/delete and add in the footer. I can add, delete, but when the edit command fires, the textboxes within the editTemplateColumn aren't visible. (I know the edit command fires because I set a textbox.text to the value of the editItemIndex.) I'm not using codebehind but <script> tags on the same page. Any help greatly appreciated.
Code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
GetList()
End If
End Sub
Sub GetList()
Dim objConn As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("~\App_Data\myDB.mdb"))
objConn.Open()
Dim ds As Data.DataSet = New Data.DataSet()
Dim objAdapter As New Data.OleDb.OleDbDataAdapter("SELECT contactID, firstname,lastname, address, city, state, zip, phoneHome, phoneWork, email, newsletter FROM myTbl order by lastname, firstname", objConn)
Dim objCmdBld As New Data.OleDb.OleDbCommandBuilder(objAdapter)
objAdapter.Fill(ds, "list")
dgList.DataSource = ds.Tables("list")
dgList.DataBind()
dgList.ShowFooter = True
objConn.Close()
End Sub
Protected Sub dgList_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgList.ItemCommand
lblMsg.Text = String.Empty
If e.CommandName = "Edit" Then
dgList.EditItemIndex = e.Item.ItemIndex
myID.Text = e.Item.ItemIndex.ToString
Code:
<asp:dataGrid ID="dgList" runat="server" SkinID="dg" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn visible="false" dataField="contactID" />
<asp:EditCommandColumn EditText="Edit" UpdateText="Upd" CancelText="Cxl" ButtonType="PushButton" />
<asp:TemplateColumn>
<FooterTemplate><asp:Button CommandName="Insert" Text="Add" Runat="server" ID="btnAdd" /></FooterTemplate>
<ItemTemplate><asp:Button CommandName="Delete" Text="Del" Runat="server" ID="btnDel" /></ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Wants Newsletter?" >
<FooterTemplate><asp:CheckBox ID="chkNews" runat="server" /></FooterTemplate>
<ItemTemplate><asp:CheckBox ID="chkNewsD" runat="server" Enabled="false" Checked="false" /></ItemTemplate>
<EditItemTemplate><asp:CheckBox ID="chkNewsE" runat="server" /></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="newsletter" Visible="true" />