using AntdUI; using AntdUIDemo.Models; using AntdUIDemo.Views.Table; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace AntdUIDemo.Views { public partial class TableDemo : UserControl { private AntdUI.Window window; AntList antList; public TableDemo(AntdUI.Window _window) { window = _window; InitializeComponent(); //初始化表格列头 InitTableColumns(); InitData(); BindEventHandler(); } private void InitTableColumns() { table_base.Columns = [ new ColumnCheck("Selected"){Fixed = true}, new Column("Name", "姓名",ColumnAlign.Center), new Column("Age", "年龄",ColumnAlign.Center), new Column("Address", "地址"){ Width = "120", LineBreak = true, }, new ColumnSwitch("Enabled", "是否启用", ColumnAlign.Center){ //支持点击回调 Call= (value,record, i_row, i_col) =>{ //执行耗时操作 Thread.Sleep(2000); AntdUI.Message.info(window, value.ToString(),autoClose:1); return value; } }, new Column("CellImages", "图片",ColumnAlign.Center), new Column("CellTags", "标签",ColumnAlign.Center), new Column("CellBadge", "徽标",ColumnAlign.Center), new Column("CellText", "富文本",ColumnAlign.Center), new Column("CellProgress", "进度条",ColumnAlign.Center), new Column("CellDivider", "分割线",ColumnAlign.Center), new Column("CellLinks", "链接",ColumnAlign.Center), ]; } private void BindEventHandler() { buttonDEL.Click += ButtonDEL_Click; table_base.CellClick += Table_base_CellClick; table_base.CellButtonClick += Table_base_CellButtonClick; } private void Table_base_CellClick(object sender, TableClickEventArgs e) { var record = e.Record; if (record is User user) { //判断是否右键 if (e.Button == MouseButtons.Right) { AntdUI.ContextMenuStrip.open(new AntdUI.ContextMenuStrip.Config(table_base, (item) => { if (item.Text == "编辑") { var form = new UserEdit(user) { Size = new Size(500, 300) }; AntdUI.Drawer.open(new AntdUI.Drawer.Config(window, form) { MaskClosable = true, OnLoad = () => { AntdUI.Message.info(window, "进入编辑", autoClose: 1); }, OnClose = () => { AntdUI.Message.info(window, "结束编辑", autoClose: 1); } }); } else if (item.Text == "删除") { var result = Modal.open(window, "删除警告!", "确认要删除选择的数据吗?", TType.Warn); if (result == DialogResult.OK) antList.Remove(user); } else AntdUI.Message.info(window, item.Text, autoClose: 1); }, [ new AntdUI.ContextMenuStripItem("编辑"){ IconSvg = "", }, new AntdUI.ContextMenuStripItem("删除"){ IconSvg = "" }, new ContextMenuStripItemDivider(), new AntdUI.ContextMenuStripItem("详情"){ Sub = [ new AntdUI.ContextMenuStripItem("打印", "Ctrl + P") { }, new AntdUI.ContextMenuStripItem("另存为", "Ctrl + S") { } ], IconSvg = "", } ])); } } } //表格内部按钮事件 private void Table_base_CellButtonClick(object sender, TableButtonEventArgs e) { var buttontext = e.Btn.Text; if (e.Record is User user) { switch (buttontext) { //暂不支持进入整行编辑,只支持指定单元格编辑,推荐使用弹窗或抽屉编辑整行数据 case "编辑": var form = new UserEdit(user) { Size = new Size(500, 300) }; AntdUI.Drawer.open(new AntdUI.Drawer.Config(window, form) { MaskClosable = true, OnLoad = () => { AntdUI.Message.info(window, "进入编辑", autoClose: 1); }, OnClose = () => { AntdUI.Message.info(window, "结束编辑", autoClose: 1); } }); break; case "删除": var result = Modal.open(window, "删除警告!", "确认要删除选择的数据吗?", TType.Warn); if (result == DialogResult.OK) antList.Remove(user); break; case "AntdUI": AntdUI.Message.info(window, user.CellLinks.FirstOrDefault().Id, autoClose: 1); break; } } } private void ButtonDEL_Click(object sender, EventArgs e) { } private void InitData() { antList = new AntList(3); for (int i = 0; i < 3; i++) { antList.Add(new User { Id = i, Selected = false, Name = "张三", Age = 30, Address = $"浙江省杭州市西湖区湖底公园{i + 1}号", Enabled = i % 2 == 0, //CellImages = [new CellImage(Properties.Resources.bg1)], CellTags = [new CellTag("测试", TTypeMini.Primary), new CellTag("测试", TTypeMini.Success), new CellTag("测试", TTypeMini.Warn)], CellBadge = new CellBadge(TState.Processing, "测试中"), CellText = new CellText("这是一个带图标的文本") { IconRatio = 0.5f, PrefixSvg = "" }, CellLinks = [new CellLink("https://gitee.com/antdui/AntdUI", "AntdUI"), new CellButton(i.ToString(),"编辑",TTypeMini.Primary), new CellButton(i.ToString(),"删除",TTypeMini.Error)], //value:0-1 CellProgress = new CellProgress(0.5f), CellDivider = new CellDivider(), }); } table_base.Binding(antList); } } }