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

ASP.NET MVC模态框中DevExpress PivotGrid事件失效、加载条不消失问题求助

问题修复方案

1. 删除局部视图重复资源引用

打开局部视图StokMiktarBilgisi.cshtml,删掉末尾的@Html.DevExpress().GetScripts和@Html.DevExpress().GetStyleSheets代码块,所有DevExpress的脚本、样式必须统一在主页面/布局页全局引用,重复加载会导致控件实例冲突、事件绑定失效。

2. 补充PivotGrid回调路由配置

在PivotGrid的初始化代码中添加回调路由,确保分页、排序等操作的请求可以正确命中后端接口:

@Html.DevExpress().PivotGrid(settings =>
{
    settings.Name = "PivotGrid1";
    // 新增回调路由配置,参数和当前Action入参保持一致
    settings.CallbackRouteValues = new { 
        Controller = "AnaBayi", 
        Action = "RetrieveStokMiktari",
        kaliteId = ViewBag.KaliteId,
        kaliteAdi = ViewBag.KaliteAdi
    };
    // 其余原有配置保持不变
    ...
}).Bind(Model).GetHtml()

同时在控制器Action中把接收的参数存入ViewBag,供回调路由使用:

public ActionResult RetrieveStokMiktari(int kaliteId, string kaliteAdi)
{
    ViewBag.KaliteId = kaliteId;
    ViewBag.KaliteAdi = kaliteAdi;
    // 其余原有逻辑保持不变
    ...
}

3. 修正Ajax请求配置

修改自定义Ajax方法,删除错误的contentType配置,GET请求不需要指定application/json格式:

function AjaxCall(url, data, type) {
    return $.ajax({
        url: url,
        type: type ? type : 'GET',
        data: data
    });
}

4. 优化模态框和控件初始化逻辑

调整JS逻辑,避免重复绑定事件、清理旧控件实例,确保AdjustControl方法正确执行:

// 全局仅绑定一次模态框显示事件
$("#modalView").off("shown.bs.modal").on("shown.bs.modal", function () {
    if (window.PivotGrid1) PivotGrid1.AdjustControl();
});

function RetrieveStokMiktari(url) {
    var kaliteId = $('#kaliteDropdown').val();
    var kaliteAdi = $('#kaliteDropdown').find(':selected').text();
    var obj = { kaliteId: kaliteId, kaliteAdi: kaliteAdi };
    
    // 加载新内容前先销毁旧控件实例,避免冲突
    if (window.PivotGrid1) {
        PivotGrid1.Dispose();
        window.PivotGrid1 = null;
    }
    $("#modalView .modal-body").empty();
    
    AjaxCall(url, obj, "GET")
    .done(function (data) {
        $("#modalView .modal-body").html(data);
        $("#modalView .modal-title").text('Shipment Files');
        $("#modalView").modal("show");
    }).fail(function (error) {
        var errMsg = error.statusText || '未知错误';
        alert(errMsg);
        toastr.error("Hata : " + errMsg, "Hata");
    });
}

5. 移除按钮多余属性

删掉按钮上的data-toggle="modal" data-target="#modalView"属性,避免和JS手动控制模态框的逻辑冲突:

<button type="button" class="btn btn-sm btn-block btn-primary" onclick="RetrieveStokMiktari('@Url.Action("RetrieveStokMiktari", "AnaBayi")')">
    <i class="fas fa-list"></i> Stok Miktarını Getir
</button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:36:00