首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ext.NET (Coolite)动态创建的Tabs侦听器在Tabpanel中找不到HTMLEditor的ID (对象未定义)

Ext.NET (Coolite)动态创建的Tabs侦听器在Tabpanel中找不到HTMLEditor的ID (对象未定义)
EN

Stack Overflow用户
提问于 2010-11-05 18:44:23
回答 1查看 3.4K关注 0票数 1

我在我的aspx文件上创建了一个TabPanel。在后面的代码中,我动态地创建:它里面的选项卡,以及每个选项卡中的一个HtmlEditor。我还在每个选项卡上创建一个侦听器,以便当它们被激活或显示时,该选项卡中的HtmlEditor获得焦点。

当我执行程序时,我看到选项卡已经在我的TabPanel上创建了。但是,在网页准备好使用之前,会发生一个错误,即监听器中的对象Id未定义。因此,侦听器不能工作,页面也不能完全加载。

奇怪的是,如果我直接添加到我的aspx文件中,在我的Tab面板中添加一个Tab,然后用监听器加载我的其余的动态选项卡: html编辑器的所有in都被识别,并且所有侦听器都能很好地工作。除了第一个选项卡外,女巫没有侦听器,在本例中没有动态创建。

我对此的理论是,在TabPanel控件的ID保存到页面之前,索引0处的选项卡似乎是lauch激活()或Show()的侦听器。

因此,我想知道我错过了什么,以及如何将监听器(激活或显示)放置到Tabpanel中的每个选项卡中,从而触发该Tab中控件的焦点方法。当然,我想动态地生成我的所有选项卡。

你能帮我吗?

希望我说的够清楚了。

这是我的Default.aspx页面:

代码语言:javascript
复制
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>

<script runat="server"> </script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page sans titre</title>
</head>
<body runat="server">
              <ext:ScriptManager ID="CooliteScriptManager" runat="server" QuickTips="true" ScriptAdapter="Ext">
        </ext:ScriptManager>

<form id="form" runat = "server">
       <ext:Panel ID="PnFiche" runat="server" Border="false" Header="false" Frame="false"
                AutoScroll="true" BodyStyle="padding: 10px; text-align: left;">
                <Body>
                   <ext:FormLayout ID="FormLayout1" runat="server" LabelWidth="150">
                    <ext:Anchor runat="server">
                        <ext:MultiField runat="server" FieldLabel="Indications / but de l'analyse" >
                            <Fields>
                                <ext:FormPanel runat="server" Title="Indications / but de l'analyse" Width="1000" Collapsible="true">
                                    <Body>
                                        <ext:TabPanel ID="TpIndications" runat="server" Width="1000" Height="250" EnableTabScroll="true">     


                                        </ext:TabPanel>
                                    </Body>
                                </ext:FormPanel>
                            </Fields>
                        </ext:MultiField>
                    </ext:Anchor>
                    </ext:FormLayout>
                </Body>
       </ext:Panel>
       </form>

</body>
</html>

这是我的Default.aspx.cs页面:

代码语言:javascript
复制
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using Coolite.Ext.Web;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        GenerateObjectTabPanel(TpIndications, "French", "Indication", null);
        GenerateObjectTabPanel(TpIndications, "English", "Indication", null);
    }

    private void GenerateObjectTabPanel(TabPanel theTabPanel, String theLanguage, String suffixeID, String TextToReplace)
    {
        HtmlEditor TheHtmlEditor = new HtmlEditor();
        TheHtmlEditor.ID = "Editeur_HTML_" + suffixeID + "_" + theLanguage;
        TheHtmlEditor.Height = 250;
        TheHtmlEditor.Width = 1000;

        if (!string.IsNullOrEmpty(TextToReplace))
        {
            TheHtmlEditor.Text = TextToReplace;
        }

        Tab TheTab = new Tab("Tab_" + suffixeID + "_" + theLanguage, theLanguage);
        TheTab.BodyControls.Add(TheHtmlEditor);
        TheTab.Listeners.Activate.Handler = "#{" + TheHtmlEditor.ID + "}.focus();";

        theTabPanel.Tabs.Add(TheTab);

    }
}

尝试用一个已经加载的选项卡修改default.aspx,监听器可以正常工作(但我当然不希望这样,因为我希望动态加载所有选项卡):

代码语言:javascript
复制
 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>

<script runat="server"> </script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page sans titre</title>
</head>
<body runat="server">
              <ext:ScriptManager ID="CooliteScriptManager" runat="server" QuickTips="true" ScriptAdapter="Ext">
        </ext:ScriptManager>

<form id="form" runat = "server">
       <ext:Panel ID="PnFiche" runat="server" Border="false" Header="false" Frame="false"
                AutoScroll="true" BodyStyle="padding: 10px; text-align: left;">
                <Body>
                   <ext:FormLayout ID="FormLayout1" runat="server" LabelWidth="150">
                    <ext:Anchor runat="server">
                        <ext:MultiField runat="server" FieldLabel="Indications / but de l'analyse" >
                            <Fields>
                                <ext:FormPanel runat="server" Title="Indications / but de l'analyse" Width="1000" Collapsible="true">
                                    <Body>
                                        <ext:TabPanel ID="TpIndications" runat="server" Width="1000" Height="250" EnableTabScroll="true">     

                                                     <Tabs>
                                                        <ext:Tab ID="TI_fr_CA" runat="server" Height="250" Width="1000" Title="test">
                                                            <Body>
                                                                <ext:HtmlEditor ID="EI_fr_CA" runat="server" Height="250" Width="1000" Visible="true">
                                                                </ext:HtmlEditor>
                                                            </Body>

                                                        </ext:Tab>
                                                     </Tabs>
                                        </ext:TabPanel>
                                    </Body>
                                </ext:FormPanel>
                            </Fields>
                        </ext:MultiField>
                    </ext:Anchor>
                    </ext:FormLayout>
                </Body>
       </ext:Panel>
       </form>

</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-08 20:11:09

请参阅http://forums.ext.net/showthread.php?10857

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4109036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档