GridView学习记录

  本程序使用到了Dev控件中的表格控件GridControl控件。此外本程序支持对表格的查询,增加,删除数据,功能只有计算平均分一项较为单一(由于数据简单因此没有连接数据库)。

对于本次作业使用到的函数及其说明

  

  1. SetDataTable:表格初始化函数(手写)。

      
  2. GetRowCellValue(%表的行号%, "%表的列名%"):此函数是GridControl库函数,作用是取得对应表格的数值返回的是一个字符串格式的值。

      
  3. DataRowCount:库函数,此函数作用是计算表格的行数。

      
  4. decimal.Parse:字符串转化为十进制的函数。

      
  5. SetRowCellValue(%表的行号%, gridView1.Columns[5],"%表格内容%" ):库函数,其中gridView1.Columns[5]作用是找到对应的那个的列,前面的行号与此函数连用即可对应的相应的单个表格,SetRowCellValue的作用是对应的相应的单个表格内容修改。

      
  6. AddNewRow():库函数,增加新的一行(空的)。

      
  7. DeleteSelectedRows:库函数,删除选中列。

测试截图

1. 主界面

2. 搜索功能(插件自带,无需书写)

3. 计算平均分

4. 添加数据

5. 重新计算平均分

6. 删除选中数据

源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Views.BandedGrid;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;

namespace HomeWork1._1
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void gridControl1_Click(object sender, EventArgs e)
        {

        }
        /*数据绑定与表的创建*/
        public void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            SetDataTable(dt,new string[]{ "    ","赵健","李齐","王东东","何丽","平均分" },
                            new List<object[]>()
                            {
                                new object[]{"大学英语",70,90,50,85,"NULL"},
                                new object[]{"C#程序设计",85,80,70,90,"NULL"},
                                new object[]{ "网页设计", 90,84,80,88,"NULL"},

                            });
            gridControl1.DataSource = dt;
        }

        private void SetDataTable(DataTable dt, string[] colNames, List<object[]> rowValues)
        {
            foreach (string s in colNames)
                dt.Columns.Add(s);
            foreach (object[] ls in rowValues)
                dt.Rows.Add(ls);
        }

        private void button1_Click(object sender, EventArgs e)
        { 
            string[,] s= new string [1024,1024] ;
            int [] sum = new int [1024];
            double[] p = new double[1024];
            for (int i = 0; i < this.gridView1.DataRowCount; i++)
            {
            /*读取数据*/
                s[0,i] = this.gridView1.GetRowCellValue(i, "赵健").ToString();
                s[1,i] = this.gridView1.GetRowCellValue(i, "李齐").ToString();
                s[2,i] = this.gridView1.GetRowCellValue(i, "王东东").ToString();
                s[3,i] = this.gridView1.GetRowCellValue(i, "何丽").ToString();
                
                /*计算总值*/
                for(int j=0;j<4;j++)
                {
                    decimal a = decimal.Parse(s[j,i]);/*字符转十进制*/
                    sum[i] = sum[i] + (int)a;
                }
            }
            
            /*计算平均分*/
            for(int i=0;i< this.gridView1.DataRowCount; i++)
            {
                p[i] = sum[i] / 4.0;
                /*进行新的数据绑定*/
                this.gridView1.SetRowCellValue(i, gridView1.Columns[5], p[i].ToString());
            }
            
        }
        /*添加新的一行*/
        private void button2_Click(object sender, EventArgs e)
        {
            this.gridView1.AddNewRow();
        }
        /*删除选中行*/
        private void button3_Click(object sender, EventArgs e)
        {
            this.gridView1.DeleteSelectedRows();
        }
    }
}
posted on 2020-10-23 14:07  千丶颜  阅读(307)  评论(0编辑  收藏  举报