Validar campo em user control
-
2012年3月5日 下午 02:05
Srs.,
Tenho uma página "Teste.aspx" q tem um botão SALVAR.
Nesta página tenho um User Control. Neste User Control tenho um textbox.
Eu preciso que, ao clicar no botão SALVAR da página Teste.aspx, valide se este textbox que está no UC foi preenchido usando o RequiredFieldValidator.
Quando o campo está na mesma página (aspx) não tenho problema. Uso desta forma:
<asp:RequiredFieldValidator ID="idTeste" runat="server" ErrorMessage="Campo 'Teste' Obrigatório!"
ControlToValidate="txtTeste" ValidationGroup="Salvar" ForeColor="Red">*</asp:RequiredFieldValidator>Mas isto não funciona caso o textbox esteja no UC.
Como fazer?
Grato
所有回覆
-
2012年3月5日 下午 02:08
Bom dia.
De uma olhada nestas threads:
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/6d58c626-5780-433c-b99c-8bb15e7104cf/
http://msdn.microsoft.com/pt-br/library/bb398929.aspx
Consultoria .NET
ANALISTA DESENVOLVEDOR
Se esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
Blog .Net Descomplicado -
2012年3月7日 下午 01:11
Olá Rafael;
Tenho um exemplo aqui que foi desenvolvido por um cara da minha equipe na empresa onde trabalho. No UserControl, que tem um TextBox, ele adicionou um CustomValidator e faz a validação do campo no lado do servidor.
Segue o código:
<asp:TextBox ID="txtAnswer" TextMode="MultiLine" runat="server" BorderWidth="1" CssClass="xgg" ></asp:TextBox> <asp:CustomValidator ID="cvAnswer" runat="server" ValidationGroup="Save" OnServerValidate="ServerValidate_Text" ForeColor="Red" Text="*"></asp:CustomValidator>
No método OnServerValidate do Custom Validator tem o seguinte código:
Veja se dá certo aí, qualquer coisa estamos aí pra ajudar!!!protected void ServerValidate_Text(object source, ServerValidateEventArgs args) { args.IsValid = (ReturnValuesOfTextField() != ""); }
public string ReturnValuesOfTextField()
{
string value = "";
int count = 0;
while (count < this.Controls.Count)
{
if (this.Controls[count].ID != null)
{
if (this.Controls[count].ID.ToString().Contains("txt"))
{
TextBox tb = (TextBox)this.Controls[count];
if (!String.IsNullOrEmpty(Request.Form[tb.UniqueID].ToString()))
value = Request.Form[tb.UniqueID].ToString().Trim();
}
}
count++;
}
return value;
}
Deise Vicentin
"Eu não procuro saber as respostas, procuro compreender as perguntas." Confúcio- 已標示為解答 Rafael Teixeira I Silva 2012年3月19日 下午 08:28
-
2012年3月7日 下午 01:59
coloque isso no user control.
<asp:TextBox ID="txtNome" runat="server" ValidationGroup="btnPagina"></asp:TextBox> <asp:RequiredFieldValidator ID="rqfTxtNome" runat="server" ErrorMessage="Prencher Campo Nome" ControlToValidate="txtNome" SetFocusOnError="True" ValidationGroup="btnPagina">*</asp:RequiredFieldValidator>
e isso na página, da certo!
<controle:uc runat="server" ID="ucValidar" /> <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="btnPagina" />
Espero ter ajudado.
- 已標示為解答 Rafael Teixeira I Silva 2012年3月19日 下午 08:28
-
2012年3月7日 下午 02:47
Crie uma propriedade publica no .cs do user control do tipo textbox que recebe e retorna o valor do texbox do user control e registre ele no seu formulario e no code behind da pagina chame essa propriedade publica que na verdade será o textbox, dai vc tera acesso ao conteudo dele
public system.web.ui.webcontrols.textbox textb
{
get{txtbox = value}
set{return txtbox}
}
chamada: seuUserControl.txtb.text < = esse sera o text box do uc.

