2011-02-18 1 views
8

J'ai un contrôle utilisateur sur une page d'un site Web qui génère une zone de texte. La zone de texte a une largeur spécifiée, mais la zone de texte est affichée de manière intermittente à une largeur beaucoup plus petite que celle spécifiée dans le code. J'ai demandé aux utilisateurs de m'envoyer des copies de la sortie "view source" afin que je puisse comparer les bons et mauvais résultats. Par "intermittent", je veux dire des constructions similaires - différents ordinateurs. Veuillez noter que les mauvais résultats sont TOUJOURS affichés sur les mêmes "mauvais" ordinateurs (il y a plus d'un utilisateur avec ce problème) et, inversement, les "bons" ordinateurs (tous avec la même version d'IE7 que les "mauvais" ordinateurs) affiche toujours de "bons" résultats.Problèmes de largeur de zone de texte - ASP.NET

Lorsque la page est affichée correctement, le code html qui est envoyé au navigateur ressemble à ceci:

<input name="ShortDescription" type="text" maxlength="100" 
id="ShortDescription" class="content" style="width:800px;" /> 

et quand il rend mal, il ressemble à ceci:

<input name="ShortDescription" type="text" maxlength="100" 
id="ShortDescription" class="content" /> 

Dans les deux cas, le code ASP.NET est:

<asp:textbox id="ShortDescription" runat="server" 
CssClass="content" Width="800px" MaxLength="100"> </asp:textbox> 

Je ne sais pas pourquoi la balise de style est abandonné se. Les pages ci-dessus ont été visualisées dans le même navigateur (IE7) sur différents ordinateurs. Les ordinateurs ont une construction d'entreprise afin qu'ils "devraient" être configurés la même chose.

J'apprécierais n'importe quelle aide!

Répondre

11

Essayez de régler la zone de texte avec la CssClass, ou comme paramètre d'attribut de style plutôt que d'utiliser la largeur d'attribut

<asp:TextBox id="ShortDescription" runat="server" CssClass="content" MaxLength="100" style="width: 800px" />
<style>.content { width: 800px }</style> 
<asp:TextBox id="ShortDescription" runat="server" CssClass="content" MaxLength="100" />
+0

Merci !!!! Cela l'a fait pour moi! – user623863

+0

Si quelqu'un éprouve des difficultés à utiliser la largeur en pourcentage, essayez d'utiliser la propriété min-width à la place –

5

Dans le passé, j'ai trouvé que définir la largeur à travers votre classe elle-même, au lieu d'utiliser la propriété width de la zone de texte s'assurera que le contrôle est rendu correctement.

0

asp:textbox, qui compile une étiquette input n'a pas une « largeur » attribut selon w3. Il supporte l'attribut "taille". IE (678) aurait probablement un meilleur temps avec la norme, où les autres navigateurs sont ... plus lâches dans leur interprétation.

http://www.w3.org/MarkUp/1995-archive/Elements/INPUT.html

0

pour fixer la largeur de zone de texte

prendre un seul fichier de la peau et mettre le code ci-dessous ...

par exemple "skinFile.skin"

<textbox runat="server" width="200px"/>

......................................

après cela mettre le code suivant dans votre page aspx.

Theme="SkinFile 

par exemple ...

<%@ Page Language="C#" MasterPageFile="~/AdminMaster.master" AutoEventWireup="true" CodeFile="stu_resgistration.aspx.cs" Inherits="AdminSide_stu_resgistration" Title="Untitled Page" Theme="SkinFile"%> 
3

Appliquer la propriété min-largeur.

dans votre style CSS feuille

.Textbox 
{ 
min-width:100%; 
} 

Votre * .aspx

<asp:TextBox CssClass="TextboxStyle" placeholder="Enter the Title" runat="server" ID="TextBox1"></asp:TextBox> 

Cela mettra à jour votre zone de texte

+0

Cela a été la seule solution qui a fonctionné pour moi – TMan

+0

D'autre part, vous pouvez définir la largeur max 'max-width: none' – Milana

Questions connexes