Редактируемый Gridview с кодом за источником данных из ODBC - PullRequest
1 голос
/ 15 декабря 2009

Я пытаюсь создать небольшое представление таблицы, в котором перечислены результаты запроса к нестандартной базе данных SQL, и с этой информацией я хочу, чтобы пользователь мог редактировать один или два столбца для обновления данных в базе данных. Я знаю, что это легко с элементом управления sqldatasource, но мне не хватает этой роскоши, и у меня возникают проблемы при переключении с моих itemTemplates в виде сетки на шаблоны редактирования, когда я запускаю событие редактирования gridview.

какие-нибудь указатели?

некоторый код:

<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>

код позади: (запрос является просто оператором выбора simlpe)

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();
        }

представление сетки привязывается к данным, когда выпадающий список изменяет индекс, что дает мне mod_id для запроса

1 Ответ

2 голосов
/ 15 декабря 2009

В итоге все получилось, я не осознавал, что должен был установить значение editindex gridview и redatabind для переключения режима редактирования

код:

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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...