C# 自定义Ext.Net组件动态初始化

C# 自定义Ext.Net组件动态初始化,c#,asp.net,ext.net,C#,Asp.net,Ext.net,我正在尝试创建一个自定义组件。组件应该在代码隐藏中动态初始化。该组件提供了一个包含其他组件的自定义窗口,如datefields、dropdown fields等。我从Ext.Net.Window派生了我的类,并添加了简单的DateField。在服务器上单击按钮应使用该日期(不应将日期传递给DirectMethod参数)。当我添加这个组件来标记时,它工作得非常好。但是当我在代码隐藏中添加窗口时,datefield的值不会在服务器调用之后设置。 我通过“Controls.Add(mywindow)”

我正在尝试创建一个自定义组件。组件应该在代码隐藏中动态初始化。该组件提供了一个包含其他组件的自定义窗口,如datefields、dropdown fields等。我从Ext.Net.Window派生了我的类,并添加了简单的DateField。在服务器上单击按钮应使用该日期(不应将日期传递给DirectMethod参数)。当我添加这个组件来标记时,它工作得非常好。但是当我在代码隐藏中添加窗口时,datefield的值不会在服务器调用之后设置。 我通过“Controls.Add(mywindow)”,在OnInit事件的生命周期中创建窗口。如果有人能给我一个提示,那就太好了。这里是我的窗口代码(onExecuteButtonClick只调用direct方法并隐藏窗口):

现在,我的页面在OnInit事件中的用法是:

protected override void OnInit(EventArgs e)
{    
    var myWindow = new WindowFilterComponent()
            {
                Hidden = false,
                Width = 500             
            };
    myWindow.ID = myWindow.ID + "MyComponent";
    Controls.Add(myWindow);
    base.OnInit(e);
}

我认为窗口是在窗体外部渲染的

请更换

Controls.Add(myWindow);


此外,我还建议为可提交字段(您案例中的日期字段)设置显式ID为确保POST数据中的id键与服务器上控件的id匹配。

如果您需要一些代码,请告诉我:)能否显示您的类我已将该类添加到问题中,请同时演示如何在代码中添加控件。确定。一开始我又换了一个职位。我猜,我将此控件添加到生命周期的后期。但在OnPreInit事件中,控件未初始化。所以也许我需要在某个地方注册这个控件。我也查看了请求,但该控件的viewstate未发送到请求中。非常感谢:)我很高兴地说。。。问题已解决:)
Controls.Add(myWindow);
Form.Controls.Add(myWindow);