我在aspx页面上有2个面板。页面加载后,将显示step1面板。用户单击按钮后。我检查数据并显示step2面板,其中我将数据显示在后面的代码中的转发器控件中。有一个“后退”按钮。当用户单击此按钮时,我需要隐藏步骤2面板并再次显示step1面板。我的问题是当用户单击后退按钮时。我可以看到step1已经显示但是然后step2面板仍然存在。有人会帮我解决这个问题。提前致谢
有我的aspx页面:
<asp:panel id="pnlStep1" runat="server" visible="False" >
<asp:label id="lbl" text="The order is ....."/>
<asp:Button id="btnNext" runat="server" text="Next" cssclass="btn"/>
</asp:panel>
<asp:panel id="pnlStep2" runat="server" visible="False" >
<fieldset class="fldBoxy"><legend class="fldLegend">Conflicts</legend>
<table class="tbl w100p" border="0">
<tr>
<td class="field100">
<asp:repeater id="repConflicts" runat="server" >
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "Details") %>
<br/>
</itemtemplate>
</asp:repeater>
<asp:label id="lblNoConflicts" runat="server" visible="False" text="No conflicts were found."></asp:label>
</td>
</tr>
</table>
</fieldset>
<div class="savechanges">
<table class="w100p" >
<tr>
<td class="talgnL" ><asp:Button ID="btnBack" Text="Back" runat="server" CssClass="btn" OnClientClick="hideStep2()"/>
</td>
<td>
<asp:Button id="btnSave" runat="server" text=" Change" cssclass="btn" />
<input class=" btn" onclick="self.close();" type="button" value="Cancel" />
</td>
<td></td>
</tr>
</table>
</div>
</asp:panel>
有我的javascritp:
<script language="javascript" type="text/javascript">
function hideStep2(){
var pln = document.getElementById("pnlStep2");
if (pln != 'undefined') {
alert('24');
pln.style.visibility = "hidden";
pln.style.display = "none";
document.getElementById("pnlStep1").style.display = "block";
}
}
</script>
答案 0 :(得分:1)
似乎是一种不寻常的方式。没有看到你的后端代码,我只是猜测,但这可以在服务器端完成。
将panel1更改为visible = true,然后使用按钮上的onclick事件将其切换为false,将panel2切换为true。
然后使用后退按钮上的onclick事件将panel1切换为visible = true,将panel2切换为false。
这意味着不需要任何javascript。