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> </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> <asp:Label runat="server" ID="lblPaypalEmail" Text="Email:" /></td>
<td><asp:TextBox runat="server" ID="tbPaypalEmail" Text="" Width="250px" /></td>
</tr>
<tr><td> </td></tr>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:ASyncPostBackTrigger ControlID="chkPayPal" />
</Triggers>
</asp:UpdatePanel>
<tr><td> </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> </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.
Vous devez vous connecter pour publier un commentaire.
Première chose que je vois c'est que vous n'avez pas besoin de la
Triggers
installation de regarder votreCheckBox
depuis leCheckBox
est dans leUpdatePanel
. Vous avez seulement besoin d'utiliserTriggers
lorsque vous souhaitez que leUpdatePanel
d'actualisation basé sur quelque chose d'extérieur à elle.J'ai pris ton code tel qu'il est et testé et il ne peut pas recréer votre problème donc il doit y avoir plus de choses. Pouvez-vous fournir plus de code? Peut-être juste au-dessus, où la table est en cours de définition?
EDIT: je pense que le problème est votre
Panel
est définie dans untable
qui est rendu undiv
entre votretr
balises. Vous shoudn pas le faire parce que votre prise de certains wackey tables. Modifiez votre code pour: