自己写的listview,包含datatable,可以对数据进行分页,排序,添加按钮等操作(二)

      
        // 在ListView 控件中显示列名
        public void ShowColumnInListView()
        {
            DataTable dt = listTable;
            Clear();
            AllowColumnReorder = true;//用户可以调整列的位置
            GridLines = true;

            int RowCount, ColCount, i;

            if (listTable == null) return;
            RowCount = listTable.Rows.Count;
            ColCount = listTable.Columns.Count;

            int nwidth = (this.Width - 36 * 2) / ColCount;
            //添加列标题名
            for (i = 0; i < ColCount; i++)
            {
                Columns.Add(GetColumnName(listTable.Columns[i].Caption.Trim()), nwidth, HorizontalAlignment.Left);
            }

            if (blnlvFlag != LISTTYPE.LV_LOG)
            {
                Columns.Add("修改", 36, HorizontalAlignment.Left);
                Columns.Add("删除", 36, HorizontalAlignment.Left);
            }
        }

        // 在ListView 控件中显示 DataTable的数据
        public void ShowDataInListView()
        {
            Clear();
            //lst.View=System.Windows.Forms.View.Details;
            AllowColumnReorder = true;//用户可以调整列的位置
            GridLines = true;

            int RowCount, ColCount, i, j;
            DataRow dr = null;
            string taskstatus = "";

            if (listPageTable == null) return;
            RowCount = listPageTable.Rows.Count;
            ColCount = listPageTable.Columns.Count;

            if (blnlvFlag != LISTTYPE.LV_LOG)
            {
                int nwidth = (this.Width - 36 * 2) / ColCount;
                //添加列标题名
                for (i = 0; i < ColCount; i++)
                {
                    Columns.Add(GetColumnName(listPageTable.Columns[i].Caption.Trim()), nwidth, HorizontalAlignment.Left);
                }

                Columns.Add("修改", 36, HorizontalAlignment.Left);
                Columns.Add("删除", 36, HorizontalAlignment.Left);
            }
            else {
                int[] width = {50,120,110,660};
                for (i = 0; i < ColCount; i++)
                {
                    Columns.Add(GetColumnName(listPageTable.Columns[i].Caption.Trim()), width[i], HorizontalAlignment.Left);
                }
            }

            if (RowCount == 0) return;
            for (i = 0; i < RowCount; i++)
            {
                dr = listPageTable.Rows[i];
                if (listPageTable.Columns[0].Caption.Trim() == "TaskId")
                {
                    string tid = ((string)dr[0].ToString().Trim()).PadLeft(6, '0');
                    Items.Add(tid);
                }
                else
                {
                    Items.Add(dr[0].ToString().Trim());
                }
                //Random r = new Random();
                for (j = 1; j < ColCount; j++)
                {
                    switch (listPageTable.Columns[j].Caption.Trim())
                    {
                        case "UserType":
                            {
                                DataRow[] datarows = FormMain.UT_Table.Select("UserType=" + dr[j].ToString().Trim());
                                if (datarows.Count() > 0)
                                {
                                    Items[i].SubItems.Add(datarows[0][1].ToString());
                                }
                                break;
                            }
                        case "SecretLevelId":
                            {
                                DataRow[] datarows = FormMain.SL_Table.Select("SecretLevelId=" + dr[j].ToString().Trim());
                                foreach (DataRow row in datarows)
                                {
                                    this.Items[i].SubItems.Add(row[1].ToString());
                                }
                                break;
                            }
                        case "SecretLimitTypeId":
                            {
                                DataRow[] datarows = FormMain.SLT_Table.Select("SecretLimitTypeId=" + dr[j].ToString().Trim());
                                foreach (DataRow row in datarows)
                                {
                                    this.Items[i].SubItems.Add(row[1].ToString());
                                }
                                break;
                            }
                        case "ProcessStatusType":
                            {
                                DataRow[] datarows = FormMain.PS_Table.Select("ProcessStatusType=" + dr[j].ToString().Trim());
                                foreach (DataRow row in datarows)
                                {
                                    taskstatus = row[1].ToString();
                                    this.Items[i].SubItems.Add(row[1].ToString());
                                }
                                break;
                            }
                        default:
                            this.Items[i].SubItems.Add((string)dr[j].ToString().Trim());
                            break;
                    }

                }

                switch (blnlvFlag)
                {
                    case LISTTYPE.LV_TASK:
                        {
                            //添加操作1
                            LabelEx label1 = new LabelEx();
                            label1.row = i;
                            label1.column = ColCount;
                            if (taskstatus == "未处理")
                            {
                                label1.SetClickStyle("修改", 1, ModHandler);
                            }
                            else
                            {
                                label1.SetClickStyle("修改", 0, null);
                            }
                            AddEmbeddedControl(label1, ColCount, i);

                            //添加操作2
                            LabelEx label2 = new LabelEx();
                            label2.row = i;
                            label2.column = ColCount + 1;
                            if (taskstatus == "未处理" || taskstatus == "处理成功" || taskstatus == "处理中")
                            {
                                label2.SetClickStyle("删除", 1, DelHandler);
                            }
                            else
                            {
                                label2.SetClickStyle("删除", 0, null);
                            }
                            AddEmbeddedControl(label2, ColCount + 1, i);
                        }
                        break;
                    case LISTTYPE.LV_USER:
                        {
                            //添加操作1
                            LabelEx label1 = new LabelEx();
                            label1.row = i;
                            label1.column = ColCount;
                            label1.SetClickStyle("修改", 1, ModHandler);
                            AddEmbeddedControl(label1, ColCount, i);
                            //添加操作2
                            LabelEx label2 = new LabelEx();
                            label2.row = i;
                            label2.column = ColCount + 1;
                            if (dr[0].ToString().Trim() == FormMain.userName)
                            {
                                label2.SetClickStyle("删除", 0, null);
                            }
                            else
                            {
                                label2.SetClickStyle("删除", 1, DelHandler);
                            }
                            AddEmbeddedControl(label2, ColCount + 1, i);
                        }
                        break;
                    case LISTTYPE.LV_LOG:
                        break;
                }
            }
        }
        public static string GetColumnName(string ln)
        {
            string listname = "";

            switch (ln)
            {
                case "TaskId": listname = "任务ID"; break;
                case "SecretLevelId": listname = "秘密等级"; break;
                case "SourceFile": listname = "源文件"; break;
                case "SecretLimitTypeId": listname = "保密期限"; break;
                //case "ErrorCode":listname="错误原因"; break;
                case "ProcessStatusType": listname = "处理状态"; break;
                case "DestFile": listname = "目标文件"; break;
                case "ModifyTime": listname = "创建时间"; break;
                case "FontSizeID": listname = "字体"; break;
                case "UserName": listname = "用户名"; break;
                case "SecretLimitDesc": listname = "保密说明"; break;
                case "EndTime": listname = "完成时间"; break;


                case "UserLogId": listname = "日志ID"; break;
                case "LogTime": listname = "时间"; break;
                //case "UserName":listname=""; break;
                case "Message": listname = "内容"; break;


                //case "UserName":listname=""; break;
                case "UserType": listname = "用户类型"; break;
            }

            return listname;
        }
        ///
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值