【问题标题】:how to get div tag from aspx page when use user control使用用户控件时如何从aspx页面获取div标签
【发布时间】:2011-09-13 02:53:05
【问题描述】:

当我使用用户控件从包含我的用户控件的 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 + "')");
}

请帮帮我。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您不能直接从UserControl 访问Page 中定义的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[..] = "...";
            }
        }
    

    【讨论】:

    • 感谢您的帮助。我可以得到它,但我如何为它添加属性?
    • 对不起,我无法理解这一行:System.Web.UI.HtmlControls.HtmlGenericControl htmlCtrl = (System.Web.UI.HtmlControls.HtmlGenericControl)p;什么是“p”????
    • 对不起,这里的p应该换成divMask
    • 哦,非常感谢。但是当我使用“this.Page”时,我得到空值。如果我用 Parent.FindControl 替换,我可以得到它。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多