ASP.NET Panneau de mise à Jour avec Case - ne fonctionne Pas Correctement

Je suis en train de travailler sur une simple démo projet afin que je puisse apprendre certaines choses à propos de ASP.NET s'AJAX capacités. Mon problème est que je n'arrive pas à obtenir un UpdatePanel pour fonctionner correctement avec une Case à cocher à l'intérieur. Voici le balisage j'utilise dans mon .fichier aspx:

<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="UpdatePanel.aspx.cs" Inherits="Testing.UpdatePanel" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<style type="text/css">
td
{ 
font-family:Arial;
font-size:10pt;
} 
#mainTable
{
background-color:#e3f3ff;
border:3px;
border-color:#000000;
border-style:solid;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<center>
<table id="mainTable">
<tr><td>&nbsp;</td></tr>
<asp:ScriptManager ID="SM1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<tr>
<td><asp:CheckBox ID="chkPaypal" runat="server" Text="Paypal" OnCheckedChanged="PayPal_CheckedChanged" AutoPostBack="true" /></td>
</tr>
<asp:Panel ID="pnlPayPal" runat="server" Visible="false">
<tr>
<td>&nbsp;&nbsp;<asp:Label runat="server" ID="lblPaypalEmail" Text="Email:" /></td>
<td><asp:TextBox runat="server" ID="tbPaypalEmail" Text="" Width="250px" /></td>
</tr>
<tr><td>&nbsp;</td></tr>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:ASyncPostBackTrigger ControlID="chkPayPal" />
</Triggers>
</asp:UpdatePanel>
<tr><td>&nbsp;</td></tr>
<tr>
<td colspan="2">
<center>
<asp:Button ID="btnRegister" runat="server" onclick="btnRegister_Click" 
Text="Register" Height="30px" Width="80px" />
</center>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</center>
</div>
</form>
</body>
</html>

Dans mon code derrière, j'ai:

using System;
namespace Testing
{
public partial class UpdatePanel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
}
protected void PayPal_CheckedChanged(object sender, EventArgs e)
{
pnlPayPal.Visible = chkPaypal.Checked;
}
}
}

Au lieu de faire un panneau visible comme je l'anticiper, il est l'ajout d'un autre "PayPal" dans la case en haut de la page. Des idées?

  • Il n'y a pas quelque chose de mal avec votre code - est-ce que tout le code est il?
  • Là, j'ai ajouté le code complet de la page.