zoukankan      html  css  js  c++  java
  • 控件:DataGridView列类型

      DataGridView的列的类型提供有多种,包括有:

    (1)DataGridViewTextBoxColumn(文本列,默认的情况下就是这种) 
    (2)DataGridViewComboBoxColumn(组合框列,名字瞎起的,就是这个功能要用到的列) 
    (3)DataGridViewLinkColumn(链接列) 
    (4)DataGridViewButtonColumn(按钮列) 
    (5)DataGridViewCheckBoxColumn(打钩列) 

    一、DataGridViewComboBoxColumn

      实例:

                    DataTable dt = DBServiceHelper.businessDbHelper.Fill(UserInfo, "select  a.code,a.Name  from  tequip_ini a where a.equip_type in (1,6) ");
                    if (dt != null)
                    {
                        dataGridViewTextBoxColumn3.DataPropertyName = "code";
                        dataGridViewTextBoxColumn3.DisplayMember = "name";
                        dataGridViewTextBoxColumn3.ValueMember = "code";
                        dataGridViewTextBoxColumn3.DataSource = dt;
                    } 

              GrdReadRecord2.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(GrdReadRecord2_EditingControlShowing);

    
    

      实现每一行的该单元格具有不同的ComboBox项:  

            private void GrdReadRecord2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                try
                {
                    if (GrdReadRecord2.CurrentCell.ColumnIndex == 5)
                    {
                        ComboBox cb = e.Control as ComboBox; 
                        if (cb != null)
                        {
                            DataTable dt = DBServiceHelper.businessDbHelper.Fill(UserInfo, " select  cast(0 as varchar(200)) as code ,'' as Name  UNION ALL    select  a.code,a.Name  from  tequip_ini a "+
                                " left join CardPosItem b on a.PosItem=b.id where   a.equip_type in(1,6) and  b.id= " + this.GrdReadRecord2.CurrentRow.Cells["ColPostItemID"].Value.ToString()); 
                            cb.DataSource = dt;
                            if (dt != null && dt.Rows.Count > 0)
                                cb.SelectedIndex = 0;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ListBoxAdd(lHint2, "异常:" + ex.Message.ToString());
                }
            }

      值得注意的是:

        每一行单元格绑定的数据必须要存在列的Item内,即是在EditingControlShowing前要先设置DataPropertyName、DisplayMember、ValueMember、DataSource,EditingControlShowing查出的数据必须是DataSource的子集。不然就会认为是错误值,报错。

      获取选取值:

        获取ValueMember:GrdReadRecord2.Rows[e.RowIndex].Cells[5].Value.ToString();

        获取DisplayMember:GrdReadRecord2.Rows[e.RowIndex].Cells[5].EditedFormattedValue.ToString();

      

  • 相关阅读:
    nginx和phpfpm保持长连接
    单件模式+打开窗体+窗体构造函数参数
    Java REST框架一览(转)
    什么原因成就了一位优秀的程序员?(转)
    使用 sqlRest 将数据库转换为 REST 风格的 Web 服务(转)
    浏览器插件之ActiveX开发系列(转载)
    Java JSON技术框架选型与实例(转)
    SQL参数绑定
    ab压力测试工具使用
    Jintegra使用注意事项
  • 原文地址:https://www.cnblogs.com/qi123/p/8972147.html
Copyright © 2011-2022 走看看