You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中DevExpress TreeList/DataGrid删除确认按钮本地化方案咨询

全局自定义DevExpress DataGrid/TreeList删除确认按钮文本

问题分析

你当前在单个Razor页面的Editing.Texts配置中只能自定义删除确认的标题和提示消息,但对话框的"Yes"/"No"按钮文本属于DevExtreme全局对话框组件的默认文本,无法通过单个组件的配置项直接修改,需要全局覆盖才能避免重复修改每个页面。

解决方案一:全局覆盖DevExtreme对话框默认配置

步骤1:创建全局本地化配置脚本

在项目的wwwroot/js目录下新建dx-global-localization.js文件,添加以下代码:

// 从后端注入本地化文本(需在布局页中完成注入)
var dxLocalization = {
    confirmYes: '@L["ConfirmYes"]',
    confirmNo: '@L["ConfirmNo"]'
};

// 全局设置所有DevExtreme对话框的按钮文本
DevExpress.ui.dialog.defaultOptions({
    options: {
        buttons: [
            {
                text: dxLocalization.confirmYes,
                onClick: function(e) {
                    e.component.hide(true);
                }
            },
            {
                text: dxLocalization.confirmNo,
                onClick: function(e) {
                    e.component.hide(false);
                }
            }
        ]
    }
});

步骤2:在布局页中注入本地化并引用脚本

在你的主布局页(如_Layout.cshtml)中,确保在DevExpress脚本之后引用该文件,并注入本地化文本:

<!-- 先加载DevExpress的核心脚本 -->
<abp-script-bundle name="DocSysDevExpressScriptBundle" />

<!-- 注入本地化文本并加载全局配置 -->
<script>
    // 直接从IStringLocalizer获取文本
    var dxLocalization = {
        confirmYes: '@L["ConfirmYes"]',
        confirmNo: '@L["ConfirmNo"]'
    };
</script>
<script src="~/js/dx-global-localization.js"></script>

解决方案二:自定义DevExtreme本地化消息包

如果需要支持多语言自动切换,可以通过加载自定义本地化消息包实现:

步骤1:创建多语言本地化文件

在wwwroot/js/localization目录下创建对应语言的JSON文件,比如:

  • dx-messages-en.json
{
  "Yes": "Yes",
  "No": "No"
}
  • dx-messages-ar.json
{
  "Yes": "نعم",
  "No": "لا"
}

步骤2:全局加载本地化包并设置当前语言

在布局页中添加以下脚本:

<script>
    // 根据当前文化加载对应的本地化消息
    DevExpress.localization.loadMessages(`/js/localization/dx-messages-@Thread.CurrentThread.CurrentCulture.Name.json`);
    // 设置当前语言环境
    DevExpress.localization.locale("@Thread.CurrentThread.CurrentCulture.Name");
</script>

结合ASP.NET Core本地化服务(可选)

如果希望直接从后端资源文件获取文本,避免维护前端JSON文件,可以直接注入:

<script>
    DevExpress.localization.loadMessages({
        "@Thread.CurrentThread.CurrentCulture.Name": {
            "Yes": '@L["ConfirmYes"]',
            "No": '@L["ConfirmNo"]'
        }
    });
    DevExpress.localization.locale("@Thread.CurrentThread.CurrentCulture.Name");
</script>

验证效果

完成以上配置后,所有DataGrid和TreeList的删除确认对话框,以及其他DevExtreme组件调用的确认对话框,都会自动使用你定义的"Yes"/"No"文本,无需在每个组件页面单独配置。


内容的提问来源于stack exchange,提问作者Mahmoud Mardawi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:45:10