views:

65

answers:

1

Hey guys, I am trying to make a small gridview that lists the results of a query against a non standard SQL db, and with this information I want the user to be able to edit a column or two to update the data in the db. I know this is easy with an sqldatasource control but I lack that luxury and I am having trouble switching from my itemTemplates in the gridview to the edittemplates when I fire the gridview's edit event.

any pointers?

some code:

<asp:GridView ID="ExamEditGridView" runat="server" OnRowEditing="EditExam" OnRowUpdating="SaveEdit"
        DataKeyNames="iproc_code" AllowSorting="true" AutoGenerateColumns="false" AutoGenerateEditButton="true">
        <HeaderStyle BackColor="#006633" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#999999" />
        <Columns>
            <asp:TemplateField HeaderText="Exam Title">
                <ItemTemplate>
                    <asp:Label ID="col1" runat="server" Text='<%# Bind("rpt_descrip") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="EditText" runat="server" Text='<%# Bind("rpt_descrip") %>' Visible="false" />
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="Short Description" DataField="short_descrip" />
            <asp:BoundField HeaderText="Description" DataField="descrip" />
            <asp:BoundField HeaderText="Sched Note" DataField="sched_note" />
        </Columns>
    </asp:GridView>

code behind: (the query is just a simlpe select statement)

string mod_id = modSelect.SelectedValue;

        string query = qry + mod_id;

        using (OdbcConnection connection = new OdbcConnection(DbConnectionString))
        {
            OdbcDataAdapter adapter = new OdbcDataAdapter(query, connection);
            DataTable dt = new DataTable();
            connection.Open();
            adapter.Fill(dt);
            ExamEditGridView.DataSource = dt;
            ExamEditGridView.DataBind();
        }

the gridview is databound when a dropdown lists index changes, which gives me the mod_id for the query

A: 

I ended up getting it working, I didn't realize I had to set the gridview's editindex value and redatabind to toggle edit mode

code:

protected void EditExam(object sender, GridViewEditEventArgs e)
    {
        ExamEditGridView.EditIndex = e.NewEditIndex;
        ExamEditGridView.DataSource = Session["data"];
        ExamEditGridView.DataBind();
    }

protected void CancelEdit(object sender, GridViewCancelEditEventArgs e)
    {
        ExamEditGridView.EditIndex = -1;
        ExamEditGridView.DataSource = Session["data"];
        ExamEditGridView.DataBind();
    }
Jimmy