2009-12-15 4 views
1

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

любые указатели?

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

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

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

+0

могли бы вы показать код Databinding? –

ответ

2

Я закончил работу, я не понял, что мне нужно было установить значение 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(); 
    } 
Смежные вопросы