devexpress gridview 添加按钮

本文介绍如何在WinForms应用程序中使用DevExpress的RepositoryItemButtonEdit控件创建按钮,并绑定点击事件。通过示例代码展示了如何动态添加按钮及其属性设置,以及如何处理按钮点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#region 添加按钮事件
        private RepositoryItemButtonEdit CreateRepositoryItemButtonEdit(Dictionary<object, string> dicButtons)
        {   
            
            RepositoryItemButtonEdit repositoryBtn = new RepositoryItemButtonEdit();
            
            repositoryBtn.AppearanceDisabled.Options.UseTextOptions = true;
            repositoryBtn.AppearanceDisabled.TextOptions.HAlignment = HorzAlignment.Near;
            repositoryBtn.AutoHeight = false;
            repositoryBtn.TextEditStyle = TextEditStyles.HideTextEditor;
            repositoryBtn.ButtonsStyle = BorderStyles.Office2003;
            repositoryBtn.Buttons.Clear();
            EditorButton btn = null;
            foreach (KeyValuePair<object, string> item in dicButtons)
            {   
                btn = new EditorButton();
                btn.Kind = ButtonPredefines.Glyph;
                btn.Caption = item.Value;
                //btn.Appearance.ForeColor = Color.Red;
                btn.Tag = item.Key;
                repositoryBtn.Buttons.Add(btn);
            }
            return repositoryBtn;
        }

        private void ribeFile_ButtonClick(object sender,ButtonPressedEventArgs e)
        {
            int i = gridView1.FocusedRowHandle;
            MessageBox.Show(i.ToString()+ e.Button.Caption) ;
            switch (e.Button.Caption)
            {
                case "核销":break;
                case "现缴":break;
                case "开票": break;
                default:
                    break;
            }
        }

        #endregion
 //RepositoryItemButtonEdit rib = new RepositoryItemButtonEdit();//Button按钮
            //rib.TextEditStyle = TextEditStyles.HideTextEditor;//隐藏文字
            //rib.Buttons[0].Kind = ButtonPredefines.Glyph;//按钮样式
            ////rib.Buttons[0].ImageOptions.Image = ;
            //rib.ButtonClick += this.Copy_Clik;
            //rib.Buttons[0].Caption = "复制";//按钮上的文字

            //RepositoryItemButtonEdit ribeFile = new RepositoryItemButtonEdit();
            //ribeFile.Buttons.Add(rib);

            Dictionary<object, string> dicButtons = new Dictionary<object, string>();
            dicButtons.Add("verification", "核销");
            dicButtons.Add("pay", "缴费");
            dicButtons.Add("open_ticket", "开票");
            RepositoryItemButtonEdit ribeFile = CreateRepositoryItemButtonEdit(dicButtons);
            ribeFile.ButtonClick += ribeFile_ButtonClick;   //绑定事件
            //gcData.RepositoryItems.Add(ribeFile);
            //this.Operate.ColumnEdit = ribeFile;

            gridColumn12.ColumnEdit = ribeFile;

            gridView1.BestFitColumns();//自动列宽

  

  转自  https://www.cnblogs.com/qq-xiao/p/6122573.html

转载于:https://www.cnblogs.com/aj407blogs/p/9887637.html

### 如何在 DevExpress ASPxGridView 中增加按钮控件及实现其功能 #### 添加按钮控件 为了向 `ASPxGridView` 中添加按钮并控制其可见性和行为,可以利用模板列 (`TemplateField`) 或者命令列 (`CommandColumn`) 来定义自定义按钮。下面展示了一个例子,说明如何创建一个用于删除记录的按钮,并设置该按钮仅当用户具有管理员权限时才显示。 ```csharp // 后台代码文件中的 Page_Load 方法或其他适当位置 protected void gridView_CustomButtonInitialize(object sender, ASPxGridViewCustomButtonEventArgs e) { var isAdmin = CheckIfUserIsAdmin(); // 自定义方法来验证当前用户的管理状态 // 获取触发事件的行索引对应的按钮对象 WebControl btnDelete = e.Row.Cells[e.VisibleIndex].Controls[1] as WebControl; // 设置按钮只对管理员可见 btnDelete.Visible = isAdmin; } ``` 对于前端部分,则是在 `.aspx` 文件内配置相应的网格视图: ```html <dx:ASPxGridView ID="gridView" runat="server" ...> <!-- 定义其他必要的属性 --> <Columns> ... <dx:GridViewCommandColumn ShowSelectCheckbox="False"> <HeaderStyle HorizontalAlign="Center"></HeaderStyle> <CellStyle HorizontalAlign="Center"></CellStyle> <Commands> <asp:ImageButton ID="btnDelete" CommandName="Delete" Text="删除"/> </Commands> </dx:GridViewCommandColumn> ... </Columns> </dx:ASPxGridView> ``` 上述示例展示了如何通过编程方式隐藏或显示特定条件下的按钮[^4]。此外,还可以进一步扩展此逻辑以处理更多复杂的场景,比如根据不同的业务规则动态调整按钮的行为或样式。 #### 实现按钮点击后的功能 一旦成功添加按钮,下一步就是为其绑定事件处理器以便响应用户的交互动作。这里假设我们已经有一个名为 `btnAction_Click` 的服务器端事件处理程序准备就绪。 ```csharp protected void gridView_RowCommand(object source, GridViewCommandEventArgs e) { if(e.CommandName == "Delete") { int index = Convert.ToInt32(e.CommandArgument); // 执行实际的数据删除操作... DeleteRecord(index); // 刷新数据源使更改生效 BindData(); } } private bool CheckIfUserIsAdmin() { // 返回布尔值表示当前登录用户是否具备管理员身份 return true; // 这里应替换为真实的认证逻辑 } private void DeleteRecord(int id) { // 删除对应ID的数据项的具体实现 } private void BindData() { // 绑定最新数据至ASPxGridView的方法体 } ``` 以上代码片段解释了如何捕捉来自客户端的指令以及执行相应后台任务的过程。每当用户单击某个带有 “Delete” 命令名称的按钮时,就会触发 `RowCommand` 事件,并传递给它有关所选项目的上下文信息,从而允许应用程序采取适当的措施[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值