它在我的方法中不执行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>调试时编辑ok .i rt单击"c“,然后快速watch...it说”名称'c‘在当前上下文中不存在“(?!!)怎么会这样?
发布于 2010-11-03 08:37:51
好的,母版页首先呈现,这样您就无法从母版页访问任何内容页控件。您可以使用事件来实现这一点,并将控件从内容传递到主服务器。
udpate:从母版页访问用户控件是整个主->内容设计中的缺陷。我能想象的最接近的事情是添加静态函数
public static void AddDesign(RadEditor obj)
{
...
}然后调用用户控件的Page_Load中的函数。
MASTER_PAGE_CLASS_NAME.AddDesign(RadEditor1);发布于 2010-11-03 08:56:49
嗯,我不确定,你可以像这样访问页面中的控件。
首先:该编辑器可能位于某个Panel (或其他容器)中,因此我应该如下所示:
<asp:Panel ID="pnl1" runat="server">
<telerik:RadEditor ID="Editor1" EnableEmbeddedBaseStylesheet="false" EnableEmbeddedSkins=false runat="server" />
<telerik:RadEditor ID="Editor2" EnableEmbeddedBaseStylesheet="false" EnableEmbeddedSkins=false runat="server" />
</asp:Panel>然后试试这个:
protected void Page_Load(object sender, EventArgs e)
{
foreach (Controls c in pnl1.Controls)
{
if (c is Telerik.Web.UI.RadEditor)
{
// do you stuff ...
}
}
}发布于 2010-11-03 09:28:49
您应该更改周围的内容,并从content控件调用您的MasterPage方法。
在您的主页中添加以下方法:
public void DoSomething(Telerik.Web.UI.RadEditor rad)
{
label1.Visible = true; label1.Text = "dhchk";
rad.CssFiles.Add("~/styles/myStyle.css");
rad.CssFiles.Add("~/styles/myStyle2.css");
rad.CssFiles.Add("~/styles/myStyle3.css");
}从页面/内容控件中的适当事件调用函数。例如Page.Load、Editor1.Load等
Master.DoSomething(Editor1);更新
在母版页中,应在内容控件中搜索子控件。
ContentPlaceHolder1.FindControl("Editor1");或者你可以尝试这样的方法:
foreach (Control c in ContentPlaceHolder1.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);
}
}https://stackoverflow.com/questions/4084849
复制相似问题