<asp:PlaceHolder ID="pnlThanks" runat="server" Visible="false">
<p><asp:Literal ID="lblReceipt" runat="server"></asp:Literal></p>
</asp:PlaceHolder>
<asp:PlaceHolder ID="pnlForm" runat="server" Visible="true">
<form id="form1" runat="server" class="busgroup-form">
//// All form controls
</form>
</asp:PlaceHolder>
文件后面的代码:
Protected Sub submit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdsubmit.Click
form1.Controls.Clear()
pnlForm.Visible = False
pnlThanks.Visible = True
End Sub
因此,在“pnlThanks”占位符可见后提交表单后,我可以看到页面上显示的正确内容。但是当我在浏览器上“查看源代码”时,我看到了表单的源代码,而不是“pnlThanks”占位符中的内容。
我做错了什么?
答案 0 :(得分:2)
您需要在<form>
标记内包含所有控件,因为ASP.NET依赖于form
进行回发等。
您的网页中只能有一个<form>
代码。
将您的代码更改为:
<form id="form1" runat="server" class="busgroup-form">
<asp:PlaceHolder ID="pnlThanks" runat="server" Visible="false">
<p><asp:Literal ID="lblReceipt" runat="server"></asp:Literal></p>
</asp:PlaceHolder>
<asp:PlaceHolder ID="pnlForm" runat="server" Visible="true">
</asp:PlaceHolder>
</form>
答案 1 :(得分:0)
我测试时,您的代码按预期工作。我的猜测是你的代码中还有另一个pnlForm.Visible = True
在你的回发上执行。
答案 2 :(得分:0)
如果visible = false,则不会呈现pnlThanks,因此它不会在源中显示。您可以使用CSS(display = none)在开始时隐藏它并在需要时进行更改。