c# devexpress 中的Gridcontrol 添加行问题 30

此控件跟VS自带的控件有很大区别。我要实现的是像VS的ListView那样添加和获取数据。请帮忙下。具体就是手动写代码添加行,修改行,获取行,删除行。怎么实现呢?谢谢。写... 此控件跟VS自带的控件有很大区别。我要实现的是像VS的ListView那样添加和获取数据。请帮忙下。具体就是手动写代码添加行,修改行,获取行,删除行。怎么实现呢? 谢谢。写的是winForm的程序。 展开
 我来答
freeeeeewind
推荐于2017-11-25 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1324万
展开全部

1)向Form1中拖入一个GridControl,两个Button

2)后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        List<Student> studentList; 
        int studentId = 1;

        public Form1()
        {
            InitializeComponent();
            
            button1.Text = "添加新行";
            button2.Text = "删除选定行";

            BuildDataSource();
        }
        //为gridcontrol1准备数据源
        private void BuildDataSource()
        {
            studentList = new List<Student>();
            studentList.Add(new Student(studentId++)
                 { Name = "张三", Course = "数学", Score = 100 });
            studentList.Add(new Student(studentId++)
                 { Name = "李四", Course = "数学", Score = 90 });
            studentList.Add(new Student(studentId++)
                 { Name = "王五", Course = "数学", Score = 91 });
            //绑定!
            gridControl1.DataSource = studentList;
        }
        //添加行
        private void button1_Click(object sender, EventArgs e)
        {
            //添加行,实际上是向数据源(List<Student>集合)添加新的元素
            Student stu = new Student(studentId++) 
                { Name = "钱七", Course = "外语", Score = 34 };
            studentList.Add(stu);
            //向数据源中新加行后,GridControl中自动会添加新行
            gridControl1.RefreshDataSource();
        }
        //删除行
        private void button2_Click(object sender, EventArgs e)
        {
            //获取所有被选行
            int[] rowIds = gridView1.GetSelectedRows();
            if (rowIds.Length == 0) return;
            //删除
            foreach (int rowId in rowIds)
            {
                int stuId = (int)gridView1.GetRowCellValue(rowIds[0], "Id");
                Student stu = studentList.First(s => s.Id == stuId);
                studentList.Remove(stu);
            }
            //从数据源中删除行后,GridControl中自动会删除对于的行
            gridControl1.RefreshDataSource();
        }
    }

    //----------------------------------------
    //学生成绩类
    class Student
    {
        public Student(int id)
        {
            Id = id;
        }
        //学号
        public int Id { get; private set; }
        //姓名
        public string Name { get; set; }
        //课程
        public string Course { get; set; }
        //成绩
        public float Score { get; set; }
    }
}

3)可直接在GridControl中修改行,不需要额外编程(除非你想校验输入数据的合法性)

------

总结: 对 Devexpress GridControl中增、删、修改,实际上是对数据源(数据集合)的增、删、修改。也就是说:对数据源修改会"反映"到界面的控件上。

万恶小C
2014-10-14 · TA获得超过107个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:160万
展开全部
用datagridview
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式