[英]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.