如何在使用用户控件时从aspx页面获取div标签

时间:2011-09-13 02:53:05

标签: asp.net

当我使用用户控件从包含我的用户控件的aspx页面获取div标签时,我遇到了问题。 我在aspx页面中有一个div:<div id="divMask" class="divMask" runat="server"></div> 在我的用户控件中,我想让div ID添加属性“onclick”,但我无法得到它。

我的aspx页面:

<div id="dvConfirmAcc" runat="server" style="display: none; position: absolute; z-index: 2000; top: 155px; left: 400px;">
      <uc1:ConfirmAccount ID="ucConfirmAccount" runat="server" />
</div>
<div id="divMask" class="divMask" runat="server"></div>

在我的用户控件中ucConfirmAccount:

protected void Page_Load(object sender, EventArgs e)
{
    string url =  "some url";
    [I want get divMask at here].Attributes.Add("onclick", "closeMessage('" + url + "')");
}

请帮帮我。

2 个答案:

答案 0 :(得分:4)

您无法直接从Page访问UserControl中定义的div,而是必须使用Page.FindControl方法

    protected void Page_Load(object sender, EventArgs e)
    {
        System.Web.UI.Control divMask = (System.Web.UI.Control)this.Page.FindControl("divMask");
        if (divMask is System.Web.UI.HtmlControls.HtmlGenericControl)
        {
            System.Web.UI.HtmlControls.HtmlGenericControl htmlCtrl = (System.Web.UI.HtmlControls.HtmlGenericControl)divMask;            
            htmlCtrl.Attributes[..] = "...";
        }
    }

答案 1 :(得分:0)

如果您可以发布一些代码以便我们为您提供更多帮助,那将会更有帮助。

尝试阅读这些链接,它们可能会帮助您解决问题:

.NET In Search Of ASP.Net Controls
ASP.NET 2.0 MasterPages and FindControl()
Find Control in Multiview