0

Extjs パネルで正しく動作するように devexpress 要素を含むパーシャルビューを作成できるかどうか疑問に思っていました。これまでのところ、partialview を Extjs パネルに読み込むことができました。すべての devexpress コントロールは適切な方法でレンダリングされますが、devexpress のクライアント側の機能全体が失われているようです。ホバー、クリックなどに対する反応はありません。これが私のコードです。

  //loading partialView
     Ext.getCmp('centerPanel').body.load({ url: 'Home/TempView',scripts:true})

//controller
 public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

        public PartialViewResult TempView()
        {
            return PartialView();
        }    

    }

//TempView
<div>
    @Html.Partial("ToolBarView");
</div>


//ToolBarView
@using DevExpress.Web.Mvc.UI

 @Html.DevExpress().ReportToolbar(settings => {
    // The following settings are necessary for a Report Toolbar. 
    settings.Name = "ReportToolbar";
    settings.ReportViewerName = "reportViewer1";
    }).GetHtml()

それを機能させる方法はありますか?ここに私のアプリケーションがあります http://www.sendspace.pl/file/591cd7a07e43f15a22759b2

4

1 に答える 1

0

ExtJScontentElプロパティを使用すると、パネルに任意のコンテンツを含めることができます。

//index.cshtml
<div id="dxGrid">
    @Html.Partial("GridViewPartialView")
</div>

//GridViewPartialView.cshtml
@Html.DevExpress().GridView(settings =>
{
    settings.Name = "DevExGrid";
    settings.CallbackRouteValues = new { Controller = "Home", Action = "GridViewPartialView" };
    settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
    settings.ClientSideEvents.EndCallback = "function(s, e) { endSizeGrid(s); }";
}).Bind(Model).GetHtml()

//ExtJS code
Ext.create('Ext.panel.Panel', {
    contentEl: 'dxGrid',
    id: 'gridContainer',
    title: 'Devexpress inside ExtJS'
});

パネルのサイズを変更する場合は、DevEx グリッドのサイズを手動で変更する必要があることに注意してください。これは、DevEx コントロールが配置されたパネルにリスナーを設定することで実現できます。

listeners: {
    resize: function () {
        adjustGridSize(this, DevExGrid);
    }
}

DevEx コントロールを操作すると、サイズも変更されるため、 という clientsideevent を指定する必要がありますEndCallBack

サイズ変更関数の実装は次のようになります。

function endSizeGrid(sender) {
        var el = Ext.get("gridContainer");
        adjustGridSize(el, sender);
};
function adjustGridSize(aGridPnl, aGridView) {
    aGridView.SetHeight(aGridPnl.getHeight());
    aGridView.SetWidth(aGridPnl.getWidth());
};

これが誰かを助けることを願っています。

于 2012-09-28T12:57:33.950 に答える