首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlGenericControl返回空

HtmlGenericControl返回空
EN

Stack Overflow用户
提问于 2016-03-11 11:02:07
回答 3查看 975关注 0票数 2

在这方面我需要帮助,我正在尝试将我的div标记中的"display:none“设置为"display:block”,该标记位于Content中。当我执行下面的代码时,HtmlGenericControl类继续给出错误“对象引用没有设置为对象的实例”,因为他找不到"divSignin“(我的div标记的id ),但是它就在那里,如代码中所示:请帮助。

我的HtmlGenericControl实现有什么问题吗?

下面是我的内容页面中的代码:

代码语言:javascript
复制
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="col-md-4" id="divSignin" style="display:none" runat="server">
    </div>
</asp:Content>

下面是我的母版页后面的代码:

代码语言:javascript
复制
protected void lbtnRegister_Click(object sender, EventArgs e)
{
    HtmlGenericControl myObject = Master.FindControl("ContentPlaceHolder1").FindControl("divSignin") as HtmlGenericControl;

   //HtmlGenericControl myObject;
   // myObject = (HtmlGenericControl)ContentPlaceHolder1.FindControl("divSignin");
   // myObject.Style.Add("display", "block");
}

代码后面的注释部分是我尝试过的另一件事,它返回相同的内容(Null)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-12 08:01:28

所以我找到了我问题的答案。我的代码是正确的,后面的代码没有任何问题。只是我创建了一个新的div (请参阅下面的html:)

代码语言:javascript
复制
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="col-md-4">
   <div id="someID" runat="server" style="display:block">

   </div>
</div>

这是我在MasterPage中的代码:

代码语言:javascript
复制
protected void lbtnRegister_Click(object sender, EventArgs e)
    {
        HtmlGenericControl myObject = this.FindControl("ContentPlaceHolder1").FindControl("divShow") as HtmlGenericControl;
        myObject.Style.Add("display", "none");
    }

我不知道是什么导致了空引用,但我猜想在div中有一个类导致了这里的问题。谢谢你们的回复。我感谢你的努力和时间

票数 1
EN

Stack Overflow用户

发布于 2016-03-11 11:18:24

你能在下面试试吗,

代码语言:javascript
复制
protected void lbtnRegister_Click(object sender, EventArgs e)
{
    HtmlGenericControl myObject = ContentPlaceHolder1.FindControl("divSignin") as HtmlGenericControl;
}
票数 2
EN

Stack Overflow用户

发布于 2016-03-11 11:32:49

如果单击事件的处理程序位于MasterPage上,则应使用:

代码语言:javascript
复制
HtmlGenericControl control = this.FindControl("MainContent").FindControl("divSignin") as HtmlGenericControl

如果处理程序位于页面的代码背后,您的解决方案就可以工作了,您的div就在其中。但是在这种情况下,你也可以得到这样的控制:

代码语言:javascript
复制
HtmlGenericControl control = this.divSignin;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35938542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档