[ASP.NET] [Résolu] Limiter la taille de la textbox d'un boundfield

Limiter la taille de la textbox d'un boundfield [ASP.NET] [Résolu] - C#/.NET managed - Programmation

Marsh Posté le 11-07-2006 à 18:08:48    

Bonjour a tous,  
 
bon j'ai un gros probleme métaphysique là...
rapidement:
j'ai un gridview, avec un boundfield, et un bouton editer
qd je clique sur ce bouton, l'asp s'occupe de tout et m'affiche la textbox kivabien associée avec le boundfield, qd je valide tout va bien aussi et c bien enregistré.
 
jusque là, souhaits standard, fonctionnement standard
 
maintenant, moi je veux pas qu'on entre 2000 caractere dans cette textbox, vu que dans ma bdd, ya que 10 caractere max... et donc je veux pas la vieille exception associée a ce depassement de taille.
Donc logiquement jme dis, faut juste mettre la propriété maxlength sur la textbox générée, facile.. sauf qu'on y accede pas a cette propriété...
 
je donne la solution qui marche certainement:
virer le boundfield, et mettre un templatefield a la place. mais j'ai pas envie, ca me fait changer trop de trucs : intercepter l'evenement rowupdating, récuperer la textbox, rajouter la valeur dans les parametres de l'update etc... bref relou koi, paske ca me fait changer l'aspx et le .cs et ce pour plusieurs pages ou ya le pb...
 
j'ai essayé un autre truc, c'est d'intercepter l'event rowCreated et de modifier la propriété de la textbox crée par le boundfield en mode edition. Ca marche, par contre, ben en validant la modification, l'evenement RowUpdating est inhibé je sais pas pkoi... et donc ya pas de mise a jour :fou:
 
qqu'un a t'il une solution de secours, ca me gonfle là :D


Message édité par Suri le 12-07-2006 à 15:39:45

---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 11-07-2006 à 18:08:48   

Reply

Marsh Posté le 12-07-2006 à 09:49:02    

Reply

Marsh Posté le 12-07-2006 à 12:13:22    

Poste du code. Le français c'est trop ambigue :)

Reply

Marsh Posté le 12-07-2006 à 13:35:02    

bon c'est bon, ne voulant pas faire un itemTemplate, jme suis fait mon propre Boundfield qui hérite du controle standard, et j'ai réécrit un bout d'initialisation de la textbox :  
 

Code :
  1. public class LimitedBoundField : BoundField
  2. {
  3.         private int _characterLimit = 0;
  4.         public int CharacterLimit
  5.         {
  6.             get { return _characterLimit; }
  7.             set { _characterLimit = value; }
  8.         }
  9.         public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex)
  10.         {
  11.             base.InitializeCell(cell, cellType, rowState, rowIndex);
  12.             if (rowState == DataControlRowState.Edit && cellType == DataControlCellType.DataCell)
  13.             {
  14.                 TextBox tb = ((TextBox)cell.Controls[0]);
  15.                 tb.MaxLength = _characterLimit;
  16.                 tb.Text = tb.Text.Substring(0, (tb.Text.Length > _characterLimit) ? _characterLimit : tb.Text.Length);
  17.             }
  18.         }
  19. }


 
je l'ai eu \o/ :lol:


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 12-07-2006 à 13:58:30    

cool, [résolu] stp :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed