Хотя ASP.NET DataGrid хорошо известен как очень хороший элемент управления таблицами, мы не можем похвалить функцию редактирования DataGrid. Если взять в качестве примера функцию отправки данных DataGrid, действительно существует большая проблема: в DataGrid каждая строка редактирования. , вы должны отправить одну строку, что является так называемым «редактированием одной строки, отправкой одной строки». В этом случае, если редактируется слишком много строк, операция пользователя не только будет затруднительной, но и приведет к частому доступу. на сервер, что значительно снижает эффективность системы.
Конечно, есть воскресшее решение — перенести редактируемый контент на другие страницы и редактировать его в TextBox. Однако, если вы внимательно подумаете, не обманывает ли этот метод себя. Кроме того, когда мы редактируем в сетке, мы не всегда можем использовать клавишу Tab для перехода между сеткой (TextBox), если ответом является Enter Events require. программисты тратят много сил на разработку.
Как решить вышеуказанные проблемы? Теперь я рекомендую вам домашний DataGrid, который я использую: SmartGrid (можно загрузить с Sky Software Station: http://www.skycn.com/soft/23547.html ). Я использую этот элемент управления уже давно. Теперь давайте обсудим метод отправки нескольких строк в SmartGrid: SmartGrid не имеет столбцов с кнопками в DataGrid. Вместо этого вся форма имеет только одну кнопку отправки. Независимо от того, меняете ли вы одну строку или несколько строк, вы можете отправить их все одновременно. , следующим образом Давайте рассмотрим несколько примеров:
Пример.
На рисунке выше показан лучший пример редактирования. В примере показано, что вы можете редактировать несколько строк или одну строку, а затем отправлять их вместе.
Код:
измените код кнопки:
Private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//Войдите в редактирование
this.DataGrid1.AllowAdd = true;//Разрешите добавление
this.DataGrid1.AllowDelete = true; //Разрешить удаление
}
Этот код является уникальным атрибутом smartgrid. Вы можете установить различные функции добавления, удаления, редактирования
и сохранения кода кнопки:
частный void Button2_Click(отправитель объекта, System.EventArgs e)
{
DataTable
t = (DataTable)this.SmartGrid1.DataSource;
this.sqlDataAdapter1.Update(t)
;
this.sqlDataAdapter1.Fill(t);
.SmartGrid1.DataSource = t;
}
Это способ отправить данные в базу данных целиком. Этот подход подходит для больших объемов данных.
Существует также способ отправки данных в серверный
код построчно:
Private void. btonSave_Click (отправитель объекта, System. EventArgs e)
{
DataTable tb = (DataTable) this.SmartGrid1.DataSource;
SqlParameter [] параметры = новый SqlParameter [5];
foreach (DataRow dr в tb.Rows)
{
параметры [0] = новый; SqlParameter("@customerId", ""+dr[1]+"");
параметры[1]=новый SqlParameter("@companyName",""+dr[0]+"");
параметры[2]=новый SqlParameter("@contactName", ""+dr[2]+"");
параметры[3]=новый SqlParameter("@contactTitle",""+dr[3]+"");
параметры[4]=новый SqlParameter("@address", ""+dr[4]+"");
//EamPd — это класс. Execute — это функция для выполнения хранимых процедур. параметры — это параметры, необходимые для хранимых процедур
. ", параметры);
}
}