Bonjour les codeurs,
je me rapproche de vous avec le secret espoir que vous me soyez d'une grande aide.
Je m'explique :
Design :
j'ai un updatePanel dans lequel il y a 2 radioButton liés et un bouton validant le tout :
1er - Associé à une textbox avec un requiredfieldvalidator
2eme - Associé à une dropDownList
Utilisation (DésActivation coté Client en JavaScript):
Lors de la coche du 1er RadioButton :
- la dropDownList se désactive
- la textbox s'active
- le requifieldvalidator s'active
Lors de la coche du 2eme RadioButton :
- la dropDownList s'active
- la textbox se désactive
- le requifieldvalidator se désactive
Processus d'utilisation :
Je clique sur le 2eme RadioButton, je valide, à ce stade l'état de la page est :
- la dropDownList activée
- la textbox désactivée
- le requifieldvalidator désactivée
La validation cause la réinitialisation de tout les composants (dans le code Behind) :
1er rb coché, tb active et vide, rfv actif, ddl inactive
et si je refait exactement le même processus d'utilisation, et bien lorsque je clique sur le second rb, tout se fait correctement dans le JavaScript sauf le rfv qui ne se désactive pas.
Je ne peut pas valider ma page car la textbox étant vide...
code page aspx :
Code ASP.NET :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default5.aspx.vb" Inherits="Default5" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!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>
<style type="text/css">
.style1
{
width: 500px;
}
</style>
<script language="javascript">
function rbAddUserLogin(rb) {
switch (rb) {
case "rbDdlAddUsers":
document.getElementById('ddlAddUsers').disabled = false;
document.getElementById('tbAddUsers').disabled = true;
document.getElementById('tbAddUsers').value = "";
ValidatorEnable(rfv_tbAddUsers, false);
break;
case "rbTbAddUsers":
document.getElementById('ddlAddUsers').disabled = true;
document.getElementById('tbAddUsers').disabled = false;
ValidatorEnable(rfv_tbAddUsers, true);
break;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table class="style1">
<tr>
<td class="tdCol1Popup">
Utilisateur :
</td>
<td class="tdColLeftPopup">
<asp:RadioButton ID="rbTbAddUsers" runat="server" Checked="True" GroupName="Utilisateur"
OnClick="rbAddUserLogin(this.value)" />
<asp:TextBox ID="tbAddUsers" runat="server" Width="88%"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="rfv_tbAddUsers" runat="server" ControlToValidate="tbAddUsers"
ErrorMessage="*" ValidationGroup="AddLogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
</td>
<td class="tdColLeftPopup">
<asp:RadioButton ID="rbDdlAddUsers" runat="server" GroupName="Utilisateur" OnClick="rbAddUserLogin(this.value)" />
<asp:DropDownList ID="ddlAddUsers" runat="server" Enabled="False" Width="90%">
<asp:ListItem>Tous</asp:ListItem>
</asp:DropDownList>
<br />
</td>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="3">
<asp:Button ID="Button1" runat="server" Text="Ajout" ValidationGroup="AddLogin" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
code behind :
Code Visual Basic :
Partial Class Default5
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
rbDdlAddUsers.Checked = False
rbTbAddUsers.Checked = True
tbAddUsers.Enabled = True
tbAddUsers.Text = String.Empty
ddlAddUsers.Enabled = False
ddlAddUsers.SelectedIndex = 0
rfv_tbAddUsers.Enabled = True
End Sub
End Class
Merci à vous.