2010-04-27 13 views
0

Je dois modifier la propriété readonly d'une zone asptext à partir du code en fonction de certaines conditions.Définition d'une zone d'affichage en lecture seule à partir du code

Je sais comment exécuter une fonction lors du chargement de la page, mais je ne sais pas comment référencer les champs de formulaire pour modifier la propriété readonly.

Quelqu'un peut-il me diriger dans la bonne direction?

Merci à l'avance,

Anthony

Répondre

0

L'ASP a également Textbox son propre ReadOnly property, mais aucun des autres éléments de formulaire d'entrée ASP ont.

Vous pouvez accéder à l'attribut html désactivé similaire via la propriété Enabled.

MyTextbox.Enabled = False 'makes control readonly 

Plus d'info here

+0

Ceci est ma zone de texte. Anthony

+0

La propriété @Dtryan activée dans asp.net est rendue en tant qu'attribut html "désactivé". La définition de ceci est: "Un élément d'entrée désactivé est inutilisable et non-cliquable." Read.On n'obtient un rendu qu'en lecture seule et sa définition est la suivante: "Un champ en lecture seule ne peut pas être modifié, mais un utilisateur peut le tabuler, le mettre en surbrillance et en copier le texte." – chobo2

+0

@Anthony, si vous ne pouvez pas vous référer à votre zone de texte à partir du code derrière, sa déclaration n'est probablement pas dans le fichier du concepteur. Si vous n'avez pas de fichier de concepteur, vous devrez le déclarer vous-même, par ex. public withevents Req_DateTextBox comme nouvelle zone de texte – dtryan

0

Je pense que dtryan est faux. Si vous utilisez Enabled, vous ne pouvez rien écrire dans la boîte. Si vous souhaitez utiliser en lecture seule, utilisez la propriété en lecture seule.

Vous aimez cette

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    // some text that is put into the textbox. 
    TextBox1.Text = "Some Text that you can't edit but can copy out of."; 
    // if read only is set to true then you can't change the text but copy it out. 
    TextBox1.ReadOnly = true; 

    // if enabled is set to false then you can't change the text or copy the text out. 
    //TextBox1.Enabled = false; 
} 

si cela est votre code

<asp:TextBox ID="Req_DateTextBox" runat="server" Text='<%# Bind("Req_Date", "{0:d}") %> 

Ensuite, il serait Req_DateTextBox.ReadOnly = true;

+0

protected void Page_Load (expéditeur d'objet, EventArgs e) { Req_DateTextBox.ReadOnly = true; } Obtenez moi deux erreurs. Fin des déclarations attendues et déclaration attendue. – Anthony

+0

Vous devez montrer tout votre code pour cette page et le code derrière. Lorsque vous commencez à taper Req_, IntelliSense popup veut-il remplir le nom du reste? Si non, alors quelque chose ne va pas. – chobo2

+0

En regardant aussi ce que vous avez collé pour votre contrôle html, fermez-vous actaully la zone de texte asp comme ceci car cela pourrait être une raison pour laquelle cela ne fonctionne pas. – chobo2