2014-05-20 2 views
0
#layer1 { 
    width: 575px; 
    height: 400px; 
    background-color: #E0E0EB; 
    position: absolute; 
    top: 36px; 
    left: 222px; 
} 

#layer2 { 
    width: 575px; 
    height: 400px; 
    background-color: #E0E0EB; 
    position: absolute; 
    top: 36px; 
    left: 222px; 
    visibility:hidden; 
} 

И у меня есть некоторые элементы управления на обоих дивы ....Как отобразить DIV на постбэка

<asp:HyperLink ID="HyperLink1" runat="server" onclick="f1();" NavigateUrl="#">Add Personal Details</asp:HyperLink> 
<asp:HyperLink ID="HyperLink1" runat="server" onclick="f2();" NavigateUrl="#">Add Personal Details</asp:HyperLink> 

по щелчку гиперссылок я следующий код ...

function f1() { 
    document.getElementById("layer1").style.visibility = "visible"; 
    document.getElementById("layer2").style.visibility = "hidden"; 
} 

function f2() { 
    document.getElementById("layer1").style.visibility = "hidden"; 
    document.getElementById("layer2").style.visibility = "visible"; 
} 

И у меня есть кнопка.

<asp:Button ID="Button5" runat="server" Text="Button" /> 

Все работает нормально, когда i cl ick на HyperLink, но когда я CLICK на BUTTON, который я hv в div2 из-за обратной передачи страницы Сброс происходит, и div1 показывает. что истинно в PostBack. Но я хочу, чтобы div2 отображался только на кнопку aftr. Нажмите, чтобы кто-нибудь предоставил мне код для этого ... Пожалуйста, помогите ...

ответ

1

Если вы пытаетесь не дать Button5 вызвать обратную передачу, добавьте onclientclick="return false;" в элемент управления. В противном случае вы можете просто управлять видимостью ваших div в обработчике событий клика. Что-то вроде этого:

protected void Button5_Click(object sender, EventArgs e) 
{ 
    div1.Style["display"] = "block"; 
    div2.Style["display"] = "none"; 
} 

Для того, чтобы получить доступ к дивы в коде вам может понадобиться, чтобы сделать их серверные элементы управления путем добавления runat="server"

+0

thx mate it Worked !!!! :) – wsun31

0

Я думаю, вы знаете, что происходит, когда есть обратная передача, страница перезагружается. Таким образом, вам нужно обработать случай, когда при обратном переносе сохраняется старое значение (IsPostback)

0

Ее было время, так как я использовал жереха, но здесь идет.

Вы можете хранить переменные в объекте Viewstate и проверять переменную при загрузке программы. Например

function f1() { 
    document.getElementById("layer1").style.visibility = "visible"; 
    document.getElementById("layer2").style.visibility = "hidden"; 
    ViewState("layer") = "1" 

} 

function f2() { 
    document.getElementById("layer1").style.visibility = "hidden"; 
    document.getElementById("layer2").style.visibility = "visible"; 
    ViewState("layer") = "2" 

} 

При загрузке страницы вы делаете что-то подобное этому

String strLayer = ViewState("layer").ToString(); 

if(strLayer.equals("2")) 
    f2(); 

Вы можете найти более подробную информацию здесь, которые могли бы помочь http://www.dotnetuncle.com/aspnet/75_viewstate.aspx

Надеются, что это помогает.

Смежные вопросы