Estoy intentando utilizar el validador de campo obligatorio en el archivo de código subyacente, pero es el que muestra el siguiente error.
De Error:
Unable to find control id 'TextBox1' referenced by the 'ControlToValidate' property of 'abcd854'
Nota : TextBox1 existe en la página. lo he probado.
Página Aspx
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="save" />
</p>
<p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</asp:Content>
Cs Archivo
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//RequiredFieldValidator validator = ControlsValidation.AssignRequiredFieldValidatorToControl(TextBox1, "Field is required", "*", "save");
//validator.ControlToValidate = ((TextBox)this.Form.FindControl("MainContent").FindControl("TextBox1")).ID;
RequiredFieldValidator validator = new RequiredFieldValidator();
validator.ID = "abcd" + new Random().Next(100, 1000);
validator.ControlToValidate = ((TextBox)this.Form.FindControl("MainContent").FindControl("TextBox1")).ID;
validator.EnableClientScript = true;
validator.ErrorMessage = "";
validator.Text = "*";
validator.ValidationGroup = "save";
validator.Display = ValidatorDisplay.Dynamic;
this.Controls.Add(validator);
}
}
- Intente ajustar el cuadro de texto id de modo estático
- no trabajo . duro suerte
- quitar la parte de IDENTIFICACIÓN cuando usted encuentra el control de ((TextBox)este.El formulario.FindControl(«MainContent»).FindControl(«TextBox1»));
Finalmente me dieron la solución. Problema fue
Como todos podemos ver que el
textbox
está en la página del niño significa »Content Page
» así que cuando se utiliza la línea de código anterior sus agregue el control en la página maestra en la que no hay ningún control con el id «TextBox1
«.así que después de cambiar la línea de código anterior con :
su trabajo a la perfección.
Gracias
En asp.net después de la representación de su página de cuadro de texto id de la cambiarse(ver código fuente en el navegador). usted puede cambiar el id de cliente de modo estático, de forma que no cambie.
Add ClientIDMode="Static"
en el cuadro de textoProbar Esto…
Código detrás de
Trate de usar ClientID en lugar de ID