gridcontrol里的gridcontrol删除多行的问题

yulitian 2008-03-22 06:11:38
DevExpress 7.2的GridControl,我想实现多行选择,然后用右键菜单一次性删除选定的多行,遇到几个问题.
第一,无法绑上右键菜单popupmenu控件.我使用了mouseclick事件自己写了一个弹出popupmenu的代码,不知道是否还有其他方法更好一些的
第二,在GridControl里无法删除多行,因为找不到选中项的集合对象.由于代码使用了分层,而且有主外表关联,所以无法使用OleDbDataAdapter的update方法

拜求各位高手帮忙了,急!
...全文
1201 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
a304788727 2008-09-17
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;

namespace 网格控件测试1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private DataTable dt = new DataTable();
private OdbcDataAdapter da = new OdbcDataAdapter();
private void Form1_Load(object sender, EventArgs e)
{
OdbcConnection cn = new OdbcConnection("driver={IBM DB2 ODBC DRIVER};Database=SDDT;hostname=223.1.1.19;port=50000; protocol=TCPIP;uid=LLL;pwd=BCL987; CurrentSchema=SDDT;");
OdbcCommand com = new OdbcCommand("select * from MODEL", cn);
da = new OdbcDataAdapter(com);


DataTable dt = new DataTable();

dt.Locale = System.Globalization.CultureInfo.InvariantCulture;


da.Fill(dt);
this.gridControl1.DataSource = dt;

}

private void getupdate()
{
dt = gridControl1.DataSource as DataTable;//把DataGridView绑定的数据源转换成DataTable

OdbcCommandBuilder cb = new OdbcCommandBuilder(da);

//将数据放到datatable 中 datagridview 的数据源 是datatable
//修改datagridview
//更新
da.Update(dt);
}

private void TBselect_Click(object sender, EventArgs e)
{
OdbcConnection con = Program.createConnection();
con.Open();

DataSet ds = new DataSet();
DataTable dt = new DataTable();
string querysql = "select * from MODEL";
OdbcDataAdapter da = new OdbcDataAdapter(querysql, con);
da.Fill(ds, "tab");
dt = ds.Tables[0];
this.gridControl1.DataSource = dt;
con.Close();
}

private void TBadd_Click(object sender, EventArgs e)
{
this.gridControl1.UseEmbeddedNavigator = true;
}

private void TBdelete_Click(object sender, EventArgs e)
{
int row = this.gridView1.SelectedRowsCount;
if (MessageBox.Show("确认删除选中的" + row.ToString() + "条记录吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (row > 0)
{
//AdvBandedGridView1.DeleteSelectedRows()
//((DataRowView)dataGridView1.SelectedRows[0].DataBoundItem).Row.Delete();
//((DataRowView)gridView1.SelectRows[0]).Row.Delete();
this .gridView1 .DeleteSelectedRows ();

//row = row - 1;
}
this.getupdate();
MessageBox.Show("删除成功");
}
}

private void TBsave_Click(object sender, EventArgs e)
{
this.getupdate();
MessageBox.Show("更新成功");
}


}
}
yulitian 2008-03-23
  • 打赏
  • 举报
回复
to 5楼,GridControl也有删除选定项的方法,但是那只是在当前View里删除,我需要编写代码找到被选定的 项s ,然后到数据库逐行删除(没办法,还有好几个外键关联的,要是真能这么简单直接删除我就含笑九泉了)

继续期待高手救急
51Crack 2008-03-22
  • 打赏
  • 举报
回复
AdvBandedGridView1.DeleteSelectedRows()
yulitian 2008-03-22
  • 打赏
  • 举报
回复
发现,标题写错字了
是"DevExpress 7.2的GridControl"

To homesos
不是顺序问题,是根本找不到Item集合对象的问题
只能做单条删除
我希望用多行选择加右键实现多行删除
kao19791 2008-03-22
  • 打赏
  • 举报
回复
低价转让:中#美#爱#梯#科技.Net软件工程师培训课程内容(共35G),声音清晰,课程完整!
需要这个培训视频的朋友请联系 QQ 936652114
homesos 2008-03-22
  • 打赏
  • 举报
回复
是不是从后往前删的
yulitian 2008-03-22
  • 打赏
  • 举报
回复
up
up

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧