لا يجد ext.net (coolite) مستمعًا تم إنشاؤه ديناميكيًا لعلامات التبويب في tabpanel معرف htmleditor (الكائن غير محدد)

StackOverflow https://stackoverflow.com/questions/4109036

سؤال

لقد قمت بإنشاء tabpanel على ملف ASPX الخاص بي. في الكود الخاص بي ، أقوم بإنشاء ديناميكي: علامات التبويب داخله وأيضًا htmleditor في كل علامة تبويب. أقوم أيضًا بإنشاء مستمع في كل علامة تبويب ، بحيث يتم التركيز عند تنشيطها أو إظهارها.

عندما أقوم بتنفيذ البرنامج ، أرى أنه تم إنشاء علامة التبويب على tabpanel الخاص بي. ولكن قبل أن تكون صفحة الويب جاهزة للاستخدام ، يحدث خطأ يقول أن معرف الكائنات في المستمعين غير محدد. لذا فإن المستمع لا يعمل ولا يتم تحميل الصفحة تمامًا.

الجزء الغريب ، هو أنه ، إذا قمت بإضافة مباشرة في ملف ASPX الخاص بي ، وعلامة تبويب في لوحة علامة التبويب الخاصة بي ، وقم بتحميل بقية علامة التبويب الديناميكي مع المستمعين: يتم التعرف على جميع معرفات محرري HTML ، ويعمل جميع المستمعين بشكل مثالي . باستثناء علامة التبويب الأولى ، ليس لدى Witch مستمع ولم يتم إنشاؤه ديناميكيًا في هذه الحالة.

نظريتي حول ذلك ، هي أن علامة التبويب في الفهرس 0 من tabpanel يبدو أن مستمع Activate () أو show () قبل حفظ معرف التحكم htmleditor في الصفحة.

لذلك أتساءل عما فاتني وكيف يمكنني وضع المستمعين (تنشيط أو عرض) على كل علامة تبويب في علامة التبويب التي ستؤدي إلى طريقة تركيز عنصر التحكم داخل علامة التبويب هذه. وبالطبع أريد إنشاء كل علامات التبويب ديناميكي.

هل بإمكانك مساعدتي ؟

آمل أن أكون واضحا بما فيه الكفاية.

ها أنا default.aspx صفحة:

<%@ 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 صفحة:

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 مع تحميل علامة تبويب واحدة بالفعل ويعمل المستمع بشكل جيد (ولكن بالطبع لا أريد ذلك لأنني أريد تحميل كل علامة تبويب بلدي ديناميكيًا):

 <%@ 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>
هل كانت مفيدة؟
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top