Como criar um Botão tipo VerificarDisponibilidade em um mesmo form antes de submeter
Olá Consultores DevMedia estou criando um Form Personalizado baseado no cadastro por membershipprovider via código O que eu queria em meu source .aspx do meu codigo seria o seguinte que antes de submeter o form no evento do botão enviar (que fáz o postback de todo o form da mesma pagina) que após o campo do envio do username criado eu estaria criando um botão do tipo verificar disponibilidade que nem do hotmail segue imagem
, mas que eu queria apenas que ele retorna-se a msg se usuário já cadastrado ou não e não utiliza-se o mesmo postback de todos os campos da pagina que incluirá esse mesmo username Como eu faria isso, lembrando que ele pesquisará o TextBox - TxtUserName no code-behind em CSharp Asp.Net no evento do botão verificar disponibilidade, comparando com os usuários já cadastrados e depois conforme disponibilidade ele poderá continuar preenchendo o form, onde o mesmo username cadastrado por ele e + campos após clicar no botão cadastrar usuário tb será criado via code behind em csharp porem sem autorização, só será autorizado após validado por email Se alguem puder me ajudar desde já agradeço
Luiz Franco
Curtidas 0
Respostas
Fabio Mans
16/03/2009
Utilizando Ajax você deve colocar um Painel somente para a região onde você pretende fazer a consulta, um outro painel para o cadastro.
Fabio
GOSTEI 0
Luiz Franco
16/03/2009
Olá Fabio boa tarde no caso é como eu faria isso, haveria algum exemplo de source(estou utilizando o VS2008) ou video de como seria feito isso, já que como segue abaixo tenho o seguinte problema que seria o seguinte é que eu tenho os seguintes campos e arquitetura por exemplo na mesma pagina
UserName (usa o ValidatorCallout)
(botão verifica disponibilidade) (tem por objetivo só verificar a disponibilidade se já existe usuario com esse user no membershipprovider se existir teria que retornar uma msg tipo já existe mas ainda não fz o postback da pagina que será feito com o botão criar usuario pq se fizer isso acredito que disparará todos os eventos do validator callout do ajax que tb estão nos outros campos comuns da pagina asp.net e neste caso so seria acionado o do username apenas )
Password (usa o ValidatorCallout)
Confirma Password (usa o Validator Callout e o RegularExpression Validator)
E-mail (usa o Validator Callout)
PergSecr ( usa o ValidatorCallout)
RespSecr (usa o Validator Callout)
Recaptcha (uso do recaptcha)
Botão (criar usuario) (para enviar o postback da pagina todos os campos incluindo-se o Campo UserName
Enfim como poderia se fazer isso, teria algum source de exemplo para o VS2008, o que vc me passou já ajudaria nesta estrutura ..fico no aguardo e desde já agradeço
UserName (usa o ValidatorCallout)
(botão verifica disponibilidade) (tem por objetivo só verificar a disponibilidade se já existe usuario com esse user no membershipprovider se existir teria que retornar uma msg tipo já existe mas ainda não fz o postback da pagina que será feito com o botão criar usuario pq se fizer isso acredito que disparará todos os eventos do validator callout do ajax que tb estão nos outros campos comuns da pagina asp.net e neste caso so seria acionado o do username apenas )
Password (usa o ValidatorCallout)
Confirma Password (usa o Validator Callout e o RegularExpression Validator)
E-mail (usa o Validator Callout)
PergSecr ( usa o ValidatorCallout)
RespSecr (usa o Validator Callout)
Recaptcha (uso do recaptcha)
Botão (criar usuario) (para enviar o postback da pagina todos os campos incluindo-se o Campo UserName
Enfim como poderia se fazer isso, teria algum source de exemplo para o VS2008, o que vc me passou já ajudaria nesta estrutura ..fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
Você já utilizou o FileUpload com Ajax, é a mesma coisa, vai ter que criar uma Trigger.
Veja um exemplo:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><br />
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
Você vai fazer a mesma coisa, para o seu botão.
GOSTEI 0
Luiz Franco
16/03/2009
Olá Fabio boa noite seguindo sua orientação copiei e colei e adaptei o source que vc me enviou ao meu propósito como segue mais abaixo, porém qdo clico no botão verificardisponibilidade, como não preenchi o campo e-mail que tb requer um validator porem fora do update panel, ele ainda aparece os dizeres de campo com preenchimento obrigatório
O que eu queria seria que qdo o usuário fosse verificar a disponibilidade do usuário (já que o campo txtusername, tb usa o validatorcallout do ajax) é que apenas fosse desabilitado os outros validators com excessão do txtusername e que dpois da verificação da disponibilidade baseado em membership via codigo aí sim os outros voltassem a requerer a validação como eu faria isso, se não da via source como seria via codigo em csharp e em que evento eu faria isso no evento btnVerificar_Click ou no evento Button2_Click
code-behind de minha aplicação
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnVerificar_Click(object sender, EventArgs e)
{
Label1.Text = txtUserName.Text;
}
protected void Button2_Click(object sender, EventArgs e)
{
}
}
Source.aspx de minha aplicação
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<style>
.highlight
{
background-color:lemonchiffon;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>UserName:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox CssClass="TEXTBOX" ID="txtUserName" MaxLength="16" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="None"
ErrorMessage="Campo <b>Usu rio(a)/Anunciante</b> ‚ de Preenchimento Obrigat¢rio!!!"
ControlToValidate="txtUserName"></asp:RequiredFieldValidator><asp:RegularExpressionValidator
ID="revUserName" runat="server" ErrorMessage="O Campo <b>Usu rio(a)/Anunciante</b> cont‚m caracteres inv lidos!!!<br/>Favor digitar novamente, m¡nimo 4 m ximo 12 caracteres v lidos."
Display="None" ValidationExpression="[\d_a-zA-Z]{4,12}" ControlToValidate="txtUserName"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" runat="server" Text="Verificar Disponibilidade" OnClick="btnVerificar_Click" />
<br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" CloseImageUrl="icones/close.bmp"
TargetControlID="RequiredFieldValidator1" HighlightCssClass="highlight" />
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender6" runat="server" CloseImageUrl="icones/close.bmp"
TargetControlID="revUserName" WarningIconImageUrl="icones/teacher.gif" HighlightCssClass="highlight"
Width="320px" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
E-mail:<asp:TextBox CssClass="TEXTBOX" ID="txtEmail" runat="server" Width="227px"></asp:TextBox><asp:RequiredFieldValidator
ID="RequiredFieldValidator4" runat="server" Display="None" ErrorMessage="Campo <b>E-mail</b> ‚ de Preenchimento Obrigat¢rio!!!"
ControlToValidate="txtEmail"></asp:RequiredFieldValidator><asp:RegularExpressionValidator
ID="revEmail" runat="server" ErrorMessage="O Campo <b>E-mail</b> cont‚m caracteres inv lidos!!!<br/>Favor digitar neste formato:<br/><b>seuemail@dominiovalido.com</b>"
Display="None" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ControlToValidate="txtEmail"></asp:RegularExpressionValidator> <cc1:ValidatorCalloutExtender
ID="ValidatorCalloutExtender4"
runat="server"
CloseImageUrl="icones/close.bmp"
TargetControlID="RequiredFieldValidator4"
HighlightCssClass="highlight"
/>
<cc1:ValidatorCalloutExtender
ID="ValidatorCalloutExtender5"
runat="server"
CloseImageUrl="icones/close.bmp"
TargetControlID="revEmail"
WarningIconImageUrl="icones/teacher.gif"
HighlightCssClass="highlight"
Width="270px"
/>
<asp:Button ID="Button2" runat="server" Text="Cadastrar Usu rio" />
</div>
</form>
</body>
</html>
fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
Luiz você não conhece o Validation Groups?
Segue um exemplo abaixo.
Os componentes verdes pertencem ao Grupo First, ou seja quando você clicar no no botão Submit1 os Validators do Grupo Azul (Second) não irão reclamar, e ao contrário a mesma coisa. No seu caso você vai fazer a mesma configuração abaixo, um Grupo no primeiro botão e outro grupo no segundo botão, cole o código abaixo no seu projeto teste e irá perceber que é bem simples.
body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" Runat="server" ValidationGroup="First"></asp:TextBox> <asp:TextBox ID="TextBox2" Runat="server" ValidationGroup="First"></asp:TextBox><br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ValidationGroup="First"
ErrorMessage="TextBox1 should not be blank" ControlToValidate="TextBox1"> </asp:RequiredFieldValidator>
<asp:Button ID="Submit1" Runat="server" ValidationGroup="First" Text="Submit 1" /> <br />
<br /> <asp:TextBox ID="TextBox3" Runat="server" ValidationGroup="Second"></asp:TextBox> <asp:TextBox ID="TextBox4" Runat="server" ValidationGroup="Second"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server" ErrorMessage=" TextBox3 should not be blank"
ControlToValidate="TextBox3" ValidationGroup="Second">
</asp:RequiredFieldValidator> <asp:Button ID="Submit2" Runat="server" ValidationGroup="Second" Text="Submit 2" />
</div>
</form>
</body> Espero ter ajudado.
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" Runat="server" ValidationGroup="First"></asp:TextBox> <asp:TextBox ID="TextBox2" Runat="server" ValidationGroup="First"></asp:TextBox><br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ValidationGroup="First"
ErrorMessage="TextBox1 should not be blank" ControlToValidate="TextBox1"> </asp:RequiredFieldValidator>
<asp:Button ID="Submit1" Runat="server" ValidationGroup="First" Text="Submit 1" /> <br />
<br /> <asp:TextBox ID="TextBox3" Runat="server" ValidationGroup="Second"></asp:TextBox> <asp:TextBox ID="TextBox4" Runat="server" ValidationGroup="Second"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server" ErrorMessage=" TextBox3 should not be blank"
ControlToValidate="TextBox3" ValidationGroup="Second">
</asp:RequiredFieldValidator> <asp:Button ID="Submit2" Runat="server" ValidationGroup="Second" Text="Submit 2" />
</div>
</form>
</body> Espero ter ajudado.
GOSTEI 0
Luiz Franco
16/03/2009
Ok vou pesquisar eles junto ao Ajax do ValidatorCallout e dps ti Retorno, mas eu já entendi olhando o source que vc me passou agora vou tentar adaptar ao que eu preciso e dps ti retorno
e aproveitando via codigo csharpaspnet, como eu faria qdo clica-se no primeiro grupo ou seja verificardisponibilidade se o usuário já cadastrado via membership se o mesm já existe ou não e dependendo da resposta ele mostra-se uma msg tipo
A)Este usuário já existe
B)Este usuário está disponível...complemente o form do prox.grupo
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
A propriedade MembershipProvider RequiresUniqueEmail
Obtém um valor indicando se o membership provider estiver configurado para exigir um email exclusivo Endereço para cada nome de usuário. Você configurou o Web.Config?
E um outro tratamento que você pode fazer é o seguinte.
MembershipUser user = Membership.GetUser(Login1.UserName);
if (user!= null)
{
Response.Write("Usuário cadastrado");
e.Cancel = true;
} Neste caso você vai fechar, um que não permite email duplicado e outro que não permite repitir o nome do usuário. Espero ter ajudado. Fabio
if (user!= null)
{
Response.Write("Usuário cadastrado");
e.Cancel = true;
} Neste caso você vai fechar, um que não permite email duplicado e outro que não permite repitir o nome do usuário. Espero ter ajudado. Fabio
GOSTEI 0
Luiz Franco
16/03/2009
Olá Fabio o meu Web.Config está configurado deste jeito
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/></sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings>
<add key="minhachave" value="1" />
</appSettings>
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=luizvideo\sqlexpress;Initial Catalog=database;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<authentication mode="Forms" />
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="cc1"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></controls>
</pages>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/><add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/><remove name="WebServiceHandlerFactory-Integrated"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/></compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/></compiler></compilers></system.codedom>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly></assemblyBinding></runtime></configuration>
vou verificar o codigo que vc me passou e no proximo feedback lhe dou um retorno
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
Você não mudou o Provider, neste caso o default é não permitir duplicar o email. Pode testar e tentar cadastrar um usuário com o email igual, perceba que ele não vai permitir. Abaixo um exemplo de como mudar o Provider original que se encontra no Machine.Config.
requiresUniqueEmail="true"
<membership defaultProvider="ECommerce_MembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<add name="ECommerce_MembershipProvider"
connectionStringName="LocalSqlServer"
applicationName="/"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Encrypted"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership> Espero ter ajudado.
<membership defaultProvider="ECommerce_MembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<add name="ECommerce_MembershipProvider"
connectionStringName="LocalSqlServer"
applicationName="/"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Encrypted"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership> Espero ter ajudado.
GOSTEI 0
Luiz Franco
16/03/2009
Olá Fabio Galante fiz o procedimento no source que nem vc me orientou mas ele não está reconhecendo o Validattor Callout do AJAX abaixo o source e o code-behind do mesmo
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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>
.highlight
{
background-color:lemonchiffon;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>UserName:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox CssClass="TEXTBOX" ID="txtUserName" MaxLength="16" runat="server"
ValidationGroup="Verifica" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="None"
ErrorMessage="Campo <b>Usu rio(a)/Anunciante</b> ‚ de Preenchimento Obrigat¢rio!!!"
ControlToValidate="txtUserName"></asp:RequiredFieldValidator><asp:RegularExpressionValidator
ID="revUserName" runat="server" ErrorMessage="O Campo <b>Usu rio(a)/Anunciante</b> cont‚m caracteres inv lidos!!!<br/>Favor digitar novamente, m¡nimo 4 m ximo 12 caracteres v lidos."
Display="None" ValidationExpression="[\d_a-zA-Z]{4,12}" ControlToValidate="txtUserName"></asp:RegularExpressionValidator>
<asp:Button ID="btnVerificar" runat="server" Text="Verificar Disponibilidade"
ValidationGroup="Verifica" onclick="btnVerificar_Click" />
<br />
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl="~/loader.gif" />
Verificando Aguarde...
</ProgressTemplate>
</asp:UpdateProgress>
<asp:Label ID="Label1" runat="server"></asp:Label>
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" CloseImageUrl="icones/close.bmp"
TargetControlID="RequiredFieldValidator1" HighlightCssClass="highlight" />
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender6" runat="server" CloseImageUrl="icones/close.bmp"
TargetControlID="revUserName" WarningIconImageUrl="icones/teacher.gif" HighlightCssClass="highlight"
Width="320px" />
</ContentTemplate>
</asp:UpdatePanel><br /><br /><br />
E-mail:<asp:TextBox CssClass="TEXTBOX" ID="txtEmail" runat="server" ValidationGroup="Cadastrar" Width="227px"></asp:TextBox><asp:RequiredFieldValidator
ID="RequiredFieldValidator4" runat="server" Display="None" ErrorMessage="Campo <b>E-mail</b> ‚ de Preenchimento Obrigat¢rio!!!"
ControlToValidate="txtEmail"></asp:RequiredFieldValidator><asp:RegularExpressionValidator
ID="revEmail" runat="server" ErrorMessage="O Campo <b>E-mail</b> cont‚m caracteres inv lidos!!!<br/>Favor digitar neste formato:<br/><b>seuemail@dominiovalido.com</b>"
Display="None" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ControlToValidate="txtEmail"></asp:RegularExpressionValidator> <cc1:ValidatorCalloutExtender
ID="ValidatorCalloutExtender4"
runat="server"
CloseImageUrl="icones/close.bmp"
TargetControlID="RequiredFieldValidator4"
HighlightCssClass="highlight"
/>
<cc1:ValidatorCalloutExtender
ID="ValidatorCalloutExtender5"
runat="server"
CloseImageUrl="icones/close.bmp"
TargetControlID="revEmail"
WarningIconImageUrl="icones/teacher.gif"
HighlightCssClass="highlight"
Width="270px"
/>
<asp:Button ID="btnCadastrar" runat="server" ValidationGroup="Cadastrar"
Text="Cadastrar Usu rio" onclick="btnCadastrar_Click"
/>
</div>
</form>
</body>
</html>
code-behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnVerificar_Click(object sender, EventArgs e)
{
string mensagem;
MembershipUser user = Membership.GetUser(txtUserName.Text);
if (user != null)
{
System.Threading.Thread.Sleep(4000);
mensagem = ("Usu rio cadastrado");
Label1.Text = mensagem;
}
else
{
System.Threading.Thread.Sleep(4000);
mensagem = ("Usu rio Dispon¡vel. Complemente o Cadastro!!!");
Label1.Text = mensagem;
}
}
protected void btnCadastrar_Click(object sender, EventArgs e)
{
Response.Write("<br/>"+txtUserName.Text);
Response.Write("<br/>" + txtEmail.Text);
}
}
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
Luiz verifiquei seus códigos e percebi que nos validators você não definiu o grupo. É necessário informar qual o grupo para todos os controles.
Altere e veja se da certo.
Fabio
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="None"
ErrorMessage="Campo <b>Usu rio(a)/Anunciante</b> ‚ de Preenchimento Obrigat¢rio!!!"
ControlToValidate="txtUserName"></asp:RequiredFieldValidator> Não tem o Grupo??????
<asp:RegularExpressionValidator
ID="revUserName" runat="server" ErrorMessage="O Campo <b>Usu rio(a)/Anunciante</b> cont‚m caracteres inv lidos!!!<br/>Favor digitar novamente, m¡nimo 4 m ximo 12 caracteres v lidos."
Display="None" ValidationExpression="[\d_a-zA-Z]{4,12}" ControlToValidate="txtUserName"></
GOSTEI 0
Luiz Franco
16/03/2009
Olá Fabio Galante Mans - boa tarde
Em qual propriedade dentro do regular validator e regular expressiom validator como eu já tinha feito dentro do textbox e do source eu defino os grupos, fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
16/03/2009
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ValidationGroup="First" ErrorMessage="TextBox1 should not be blank" ControlToValidate="TextBox1">
No mesmo lugar dos controles, veja acima em negro. Ou seja os Validator também posssuem uma Propriedades chamada ValidationGroup.
Fabio
GOSTEI 0
Luiz Franco
16/03/2009
Ok deu certo Fabio Galante muito obrigado, desta vêz deu certo..pode dar o chamado como Concluído e desde já agradeço á você e a equipe de Consultoria brigadão mesmo
GOSTEI 0