Nous avons une case à cocher qui est initialement désactivée et vérifiée. Il est ensuite activé du côté client via javascript. Si l'utilisateur désactive alors la case et appuie sur le bouton pour invoquer une publication, l'état de la case à cocher reste tel que vérifié côté serveur. C'est évidemment un comportement indésirable. Voici un exemple.ASP.Net La valeur de la case à cocher lors de la publication est incorrecte?
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testcb.aspx.cs" Inherits="ESC.testcb" %>
<!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 runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
function buttonClick() {
var cb = document.getElementById('<%= CheckBox1.ClientID %>');
cb.disabled = false;
cb.parentNode.disabled = false;
}
</script>
<div>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="true" Enabled="false" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="buttonClick(); return false;" />
<asp:Button ID="Button2" runat="server" Text="Button2" OnClick="button2Click" />
</div>
</form>
</body>
</html>
Et le code côté serveur:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ESC
{
public partial class testcb : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void button2Click(object sender, EventArgs e)
{
string h = "";
}
}
}
Donc nous cassons à la ligne "chaîne h" et vérifier la valeur de CheckBox1.Checked. C'est vrai, même s'il n'est pas coché sur le formulaire.
En effet, l'état d'affichage de votre page ne reçoit pas mis à jour lorsque vous définissez la propriétés de votre contrôle du code derrière. –
Au lieu de contrôler le serveur, utilisez un contrôle HTML et je crois que votre problème est résolu. –
@ Kamran, Viewstate n'est pas le problème. –