EditIndex的值设置

本文介绍了一个使用ASP.NET中GridView控件处理RowUpdating事件的例子。通过此事件,可以捕获用户在GridView处于编辑模式时所作的更改,并利用SqlConnection、SqlCommand执行SQL更新语句来保存这些更改到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

protected void GridView1_RowUpdating

(
object sender, GridViewUpdateEventArgs e)

{

int empid;

string fname, lname;

empid 
= int.Parse(GridView1.Rows[e.RowIndex].

Cells[
0].Text);

fname 
= ((TextBox)GridView1.Rows[e.RowIndex].

Cells[
1].Controls[0]).Text;

lname 
= ((TextBox)GridView1.Rows[e.RowIndex].

Cells[
2].Controls[0]).Text;

 

SqlConnection cnn 
= new SqlConnection(@"data source=

./sqlexpress;initial catalog=northwind;integrated 

security=true
");

cnn.Open();

SqlCommand cmd 
= new SqlCommand("update employees set 

firstname
=@fname,lastname=@lname where employeeid=@empid",

 cnn);

cmd.Parameters.Add(
new SqlParameter("@fname",fname));

cmd.Parameters.Add(
new SqlParameter("@lname", lname));

cmd.Parameters.Add(
new SqlParameter("@empid", empid));

cmd.ExecuteNonQuery();

cnn.Close();

 

GridView1.EditIndex 
= -1;

BindGrid();

}

 
``` void ALMTFDataCorrTool::deal_actionDelete_triggered() { //获取选中的行列范围 QModelIndexList indexList = this->theSelectionModel->selectedIndexes(); if (indexList.isEmpty()) return; for (size_t i = 0; i < indexList.size(); i++) { QModelIndex index = indexList.at(i); QStandardItem* item = theModel->itemFromIndex(index); } } void ALMTFDataCorrTool::onItemClicked(const QModelIndex & index) { QStandardItem* item = theModel->itemFromIndex(index); m_originalValue = item->text(); // 保存原始 m_editIndex = QPersistentModelIndex(index); // 持久化索引 } void ALMTFDataCorrTool::onItemDoubleClicked(const QModelIndex & index) { int row = index.row(); int col = index.column(); QStandardItem* item = theModel->item(row, col); item->setFlags(item->flags() | Qt::ItemIsEditable); QString head = theModel->headerData(col, Qt::Horizontal).toString() + theModel->headerData(row, Qt::Vertical).toString(); foreach(const auto &pair, m_vecFormulae) { QString key = pair.first; if (key == head) { item->setText(pair.second); } } } void ALMTFDataCorrTool::handleEditFinish(QWidget* editor, QAbstractItemDelegate::EndEditHint hint) { Q_UNUSED(editor); Q_UNUSED(hint); if (!m_editIndex.isValid()) return; // 获取新旧比较 QString newValue = m_editIndex.data().toString(); int row = m_editIndex.row(); int col = m_editIndex.column(); // 查询客户修改的item的excel索引 QString head = theModel->headerData(col, Qt::Horizontal).toString() + theModel->headerData(row, Qt::Vertical).toString(); if (newValue != m_originalValue) { // 判断这个item带不带公式,如果带公式,删除副本的公式 for (int i = 0; i < m_vecFormulae.size(); i++) { QPair<QString, QString> pair = m_vecFormulae.at(i); QString key = pair.first; if (key == head) { m_vecFormulae.remove(i); i--; } } QVector<QString> m_vec; m_vec.append(head); int i = 0; do { head = m_vec.at(i); foreach(const auto &pair, m_vecFormulae) { QString key = pair.first; QString value = pair.second; QString str = value; str.remove("=").remove("AVG").remove("(").remove(")").remove("/2"); // 明确转义特殊符号,并拆分 ± 为 + 和 - QStringList list = str.split( QRegularExpression("[,()\\s+*/-]"), // 正则表达式 QString::SkipEmptyParts // 跳过空字符串 ); if (head != key && list.contains(head))// 查找带有此次修改的item的公式,并重新计算公式 { int row = 0; int col = 0; g_Fun.parseExcelCoordinate(key, row, col); FormulaItem* item = new FormulaItem(value, theModel); theModel->setItem(row, col, item); QString h = theModel->headerData(col, Qt::Horizontal).toString() + theModel->headerData(row, Qt::Vertical).toString(); m_vec.append(h); } } i++; }while (i < m_vec.size()); } // 清理状态 m_editIndex = QPersistentModelIndex(); m_originalValue.clear(); }```QHash
最新发布
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值