我正在尝试加载剃须刀脚本,它作为一个单独的宏存在于umbraco中。我使用的是umbraco 4.7.0
我基本上是在进行地理定位,因此每次在加载页面时都需要运行脚本。所以我在寻找这样的东西:
<script type="c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Call the Macro here
}
显然,我可以在模板中做到这一点。
<umbraco:Macro Alias="GeoTargetting" runat="server" />但是在页面中加载任何控件之前,我需要调用这个宏。
PLease帮助。
谢谢
发布于 2012-08-08 23:14:30
这似乎是正常的:
模板:
<umbraco:Macro Alias="Sandbox" runat="server"></umbraco:Macro>
<asp:Label runat="server" ID="Label1" Text="Yo"></asp:Label>宏脚本:
@using System.Web.UI.WebControls
@using umbraco.MacroEngines
@inherits DynamicNodeContext
@{
Page page = HttpContext.Current.Handler as Page;
page.Load += new EventHandler(page_Load);
}
@functions
{
static void page_Load(object sender, EventArgs e)
{
Page page = sender as Page;
Label label = FindControlRecursive(page, "Label1") as Label;
label.Text = "Hello";
}
private static Control FindControlRecursive(Control Root, string Id)
{
if (Root.ID == Id)
return Root;
foreach (Control Ctl in Root.Controls)
{
Control FoundCtl = FindControlRecursive(Ctl, Id);
if (FoundCtl != null)
return FoundCtl;
}
return null;
}
}注意: FindControlRecursive()方法来自于这个论坛线。
https://stackoverflow.com/questions/11845239
复制相似问题