2016-03-11 7 views
2

Мне нужна помощь в этом, я пытаюсь установить «display: none» в «display: block» в моем теге div, который находится на странице содержимого. Когда я делаю код ниже, класс HtmlGenericControl продолжает выдавать ошибку «Ссылка на объект не установлена ​​на экземпляр объекта», потому что он не может найти «divSignin» (идентификатор моего тега div), но он присутствует как представленный в коде: Пожалуйста, помогите.HtmlGenericControl Returning Null

Что-то не так с моей реализацией 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"); 
} 

Комментарий часть в коде за это другая вещь, я пытался возвращающий то же самое (Null).

ответ

1

Так что я нашел ответ на свой вопрос. Мой код правильный, и в коде нет ничего плохого. Только что я создал новый 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 вызвало мою проблему здесь. Спасибо за ответ, ребята. Я ценю ваши усилия и время

2

Можете ли вы попробовать ниже,

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

Да, это решение. – Aristos

+0

все еще вернувшийся null ..:/sorry Я не могу отметить это как ответ ... –

+0

Можете ли вы мне показать? –

1

Если обработчик события щелчка находится на MasterPage, вы должны использовать:

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

ваше решение будет работать, если обработчик был в код для страницы, где у вас есть ваш div. Но в этом случае вы также можете получить такой элемент управления:

HtmlGenericControl control = this.divSignin; 
+0

также правильный ответ ... – Aristos

+0

все еще возвращает нуль .. извините, бутон не может сделать это ответом ... и для вашего второго кода, да, я знаю, что я могу легко получить это таким образом, потому что у меня есть «runat = сервер "на div ... –