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

解决方案 »

  1.   

    低价转让:中#美#爱#梯#科技.Net软件工程师培训课程内容(共35G),声音清晰,课程完整!
    需要这个培训视频的朋友请联系 QQ 936652114
      

  2.   

    发现,标题写错字了
    是"DevExpress 7.2的GridControl"To homesos 
    不是顺序问题,是根本找不到Item集合对象的问题
    只能做单条删除
    我希望用多行选择加右键实现多行删除
      

  3.   

    AdvBandedGridView1.DeleteSelectedRows()
      

  4.   

    to 5楼,GridControl也有删除选定项的方法,但是那只是在当前View里删除,我需要编写代码找到被选定的 项s ,然后到数据库逐行删除(没办法,还有好几个外键关联的,要是真能这么简单直接删除我就含笑九泉了)继续期待高手救急
      

  5.   

    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("更新成功");
            }     
        }
    }