2016-10-26 2 views
0

У меня есть приложение ASPX, которое отображает 3 объекта ASP: gridview. Я выбрал определенные столбцы из таблицы SQLite для отображения в каждом gridview на основе значения в этих столбцах. У меня проблема с одним gridview. Это gridview вытягивает 6 столбцов из таблицы и отображает их вместе с 2 ButtonFields и 1 Templatefield с элементом управления texbox. Одна из кнопок должна вставлять текст из текстового поля (введенного пользователем) в таблицу. Затем приложение обновляет gridview, и вставленные данные должны отображаться в столбце.Обновление sql Данные из ASP: Текстовое поле Gridview

Я использую следующие для вставки данных в таблицу:

protected void gvApproved_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     int rowIndex = Convert.ToInt32(e.CommandArgument); 
     GridViewRow row = gvApproved.Rows[rowIndex]; 
     string name = row.Cells[0].Text; 
     string column = ""; 
     string value = ""; 
     switch (e.CommandName) 
     { 
      case "Close": 
       column = "closed"; 
       value = "yes"; 
       break; 
      case "Score": 
       column = "score"; 
       value = row.Cells[8].Text; 
       break; 
     } 
     SQL_Helper.Update_Row(rowIndex, column, value, name); 
     Refresh_All_Grids(); 
    } 

Команда обновления строки, в случае, если кому-то интересно:

public static void Update_Row(int rowIndex, string updateField, string updateString, string updateName) 
    { 
     string query = "UPDATE applications SET '" + updateField + "' = '" + updateString + "' WHERE name = '" + updateName + "';"; 
     Query_Table(query); 
    } 

Когда я установил линию value = row.Cells[8].Text; в value = row.Cells[8].ToString() , он будет вставлять 'System.Web.UI.WebControls.DataControlFieldCell' в таблицу, поэтому я знаю, что он вытаскивает из правого столбца, но когда я оставляю его, как написано выше, он вставляет пустую строку. Невозможно ли вставить из текстового поля gridview? Если да, то что мне нужно изменить, чтобы заставить его работать?

ответ

0

У меня есть мой ранее размещенный ответ ниже, но затем, глядя на него, я понял, что вы работаете с GridViewRow, а не с DataGridViewRow. Вы должны обновить вопрос, чтобы не включать ничего о DataGridView. GridViewRow.Cells [8] не имеет значения, как я упоминал в моем нижнем ответе.

Я собирался просто прокомментировать, если это небольшое предложение исправлено, но у меня пока нет 50 репутов. Вы должны использовать Value вместо самой ячейки.

Это работает?

value = row.Cells[8].Value.ToString(); 
+0

'row.Cells []. Value' не существует как действительный член класса, к сожалению. –

+0

@RobertSpears Да, я отредактировал свой ответ, чтобы объяснить это, проверьте его снова очень быстро. Думал, что вы используете DataGridViewRow, но используете GridViewRow. –

Смежные вопросы