1

我想在我项目的某个后端类中创建一个 ext.NET 面板。然后,在 razor 视图中,我想实例化这个类并使用它将组件放置到屏幕上。我需要后半部分的帮助!

例如,我有课:

namespace Interface.Resources
{

    public class Screen
    {

        public ext.Panel NavigationPanel()
        {
            ext.Panel navPanel = new ext.Panel
            {
                Title = "NAVIGATION",
                Border = true,
                Header = false,
                Region = ext.Region.East,
                Width = 400,
                Collapsible = true,
                CollapseMode = ext.CollapseMode.Mini,
                Split = true
            };

            return navPanel;

        }
....

现在,视图类看起来像这样......

@using Interface.Resources

@functions
{
    Interface.Resources.Screen _irs = new Interface.Resources.Screen();
}

@_irs.NavigationPanel()

....

显然后者不工作......它编译并运行,但我得到一个错误。我在做什么错...我尝试使用 Html.X() 等,但我似乎无法让面板呈现。

注意:如果我使用 Html.X().Panel()....Items(items => { items.add(_irs.NavigationPanel()); }) 之类的东西...它可以工作,但我没有每次使用我正在创建的接口资源库时,都希望必须在剃刀视图中创建容器面板。

我很欣赏这个问题不是 Razor 特有的。

4

2 回答 2

1

我认为您唯一的方法是在您的类中构建配置,然后调用 ext 扩展方法在视图中呈现面板。

定义

namespace Interface.Resources
{
    public class Screen
    {
        public static Ext.Net.Panel NavigationPanelConfig()
        {
            return new Ext.Net.Panel.Config()
            {
                Title = "NAVIGATION",
                Border = true,
                Header = false,
                Region = Ext.Net.Region.East,
                Width = 400,
                Collapsible = true,
                CollapseMode = Ext.Net.CollapseMode.Mini,
                Split = true,
            };
        }
    }
}

渲染

@(Html.X().Panel(Interface.Resources.Screen.NavigationPanelConfig()))
于 2013-09-01T15:16:42.773 回答
1

我找到的解决方案是使用视口将面板放入其中。这一定与我正在实施的视图链有关。

@(
 Html.X().Viewport()
    .Layout(LayoutType.Border)
    .Items(items =>
        {
            items.Add(_menu.NavigationPanel(Model));
            items.Add(_tabPanel.MainScreen());
        })
)
于 2013-09-02T08:11:30.850 回答