#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>
点击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" />
当我点击HyperLink时,一切正常,但当我点击按钮时由于回发页面重置而在div2中出现并且div1正在显示。根据PostBack,这是真的。但我希望div2只显示aftr按钮点击任何人都可以为我提供代码......请帮忙......
答案 0 :(得分:1)
如果您试图阻止Button5导致回发,请将onclientclick="return false;"
添加到控件中。否则,您只需在click事件处理程序中处理div的可见性。像这样:
protected void Button5_Click(object sender, EventArgs e)
{
div1.Style["display"] = "block";
div2.Style["display"] = "none";
}
要在代码隐藏中访问您的div,您可能需要通过添加runat="server"
答案 1 :(得分:0)
我想你知道当有回发时会发生什么,重新加载页面。因此,您必须处理当回发时保留旧值(IsPostback)
的情况答案 2 :(得分:0)
自从我使用asp以来已经有一段时间了,但是这里有。
您可以在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
希望这有帮助。