簡體   English   中英

HtmlGenericControl返回Null

[英]HtmlGenericControl Returning Null

我需要幫助,我正在嘗試在內容頁面中的div標簽中將“ display:none”設置為“ display:block”。 當我執行下面的代碼時,HtmlGenericControl類會繼續給出錯誤“對象引用未設置為對象的實例”,因為他找不到“ divSignin”(我的div標簽的ID),但是它在那里代碼:請幫忙。

我的HtmlGenericControl實現有問題嗎?

這是我的內容頁面中的代碼:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="col-md-4" id="divSignin" style="display:none" runat="server">
    </div>
</asp:Content>

這是我的母版頁中的代碼:

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");
}

后面代碼中的注釋部分是我嘗試過的另一件事,它返回了同樣的東西(空)。

您能不能嘗試以下,

protected void lbtnRegister_Click(object sender, EventArgs e)
{
    HtmlGenericControl myObject = ContentPlaceHolder1.FindControl("divSignin") as HtmlGenericControl;
}

如果單擊事件的處理程序位於母版頁上,則應使用:

HtmlGenericControl control = this.FindControl("MainContent").FindControl("divSignin") as HtmlGenericControl

如果處理程序在Page的代碼隱藏區中,則解決方案將起作用,在該處有div。 但是在這種情況下,您也可以像這樣獲得控件:

HtmlGenericControl control = this.divSignin;

因此,我找到了問題的答案。 我的代碼是正確的,並且后面的代碼確實沒有錯。 只有我創建了一個新的div(請參考下面的html :)

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="col-md-4">
   <div id="someID" runat="server" style="display:block">

   </div>
</div>

這是我的MasterPage中的代碼:

protected void lbtnRegister_Click(object sender, EventArgs e)
    {
        HtmlGenericControl myObject = this.FindControl("ContentPlaceHolder1").FindControl("divShow") as HtmlGenericControl;
        myObject.Style.Add("display", "none");
    }

我不確定是什么導致了空引用,但是我猜測在div中有一個類會在這里引起我的問​​題。 感謝您的回復。 感謝您的努力和時間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM