它在我的方法中的if块中未执行语句

母版页:-

页面加载事件:-

Control c = new Control();
DoSomething(c);


我的方法:

 protected void DoSomething(Control control)(
        {

            foreach (Control c in control.Controls)
            {
                if(typeof(c).Equals(Telerik.Web.UI.RadEditor))
                {
                   Telerik.Web.UI.RadEditor rad = c as Telerik.Web.UI.RadEditor;

                   label1.Visible = true; label1.Text = "dhchk";
                   rad.CssFiles.Add("~/styles/myStyle.css");
                   rad.CssFiles.Add("~/styles/myStyle2.css");
                   rad.CssFiles.Add("~/styles/myStyle3.css");
                }
                else
                {
                      DoSomething(c);
                }

            }

        }


我的内容页面:

    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <telerik:RadEditor ID="Editor1" EnableEmbeddedBaseStylesheet="false"  EnableEmbeddedSkins=false runat="server">
    </telerik:RadEditor>

<telerik:RadEditor ID="Editor2" EnableEmbeddedBaseStylesheet="false"  EnableEmbeddedSkins=false runat="server">

    </telerik:RadEditor>


[编辑]调试时确定。我先单击“ c”,然后单击“快速监视...”,它显示“名称“ c”在当前上下文中不存在”(?!?!),怎么办?

最佳答案

好吧,母版页首先呈现,因此您将无法从母版页访问任何内容页面控件。您可以使用事件来实现此目的,并将控件从内容传递到母版

udpate:
同样,从母版页访问用户控件是整个母版->内容设计中的缺陷。我能想到的最接近的事情是添加静态函数

public static void AddDesign(RadEditor obj)
{
...
}


然后从用户控件的Page_Load调用函数

MASTER_PAGE_CLASS_NAME.AddDesign(RadEditor1);

关于c# - 从母版页后面的代码访问RadEditor控件…它在那里时找不到任何radEditor控件。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4084849/

10-11 00:59