Accueil > > > MONEY TEXTBOX WITH EMBEDED JAVASCRIPT
MONEY TEXTBOX WITH EMBEDED JAVASCRIPT
Information sur la source
Description
MoneyTextBox convertit "100000.123" en "100 000.12" ce composant derive d'une textbox, j'y ai ajouté la propriété value, qui lorsqu'on lui affecte une valeur, modifie le style d'affichage ajout de cette fonctionnalité en javascript lorsqu'un utilisateur saisie une valeur, à la fin de la saisie, la valeur est reformaté
Source
- namespace WebControlLibrary1
- {
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Text;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Globalization;
-
- [DefaultProperty("Text")]
- [ToolboxData("<{0}:MoneyTextBox runat=server>")]
- public class MoneyTextBox : TextBox
- {
- //ajouter cette ligne dans assembly info pour que le js soit inclu
- //[assembly: System.Web.UI.WebResource("WebControlLibrary1.Javascripts.Money.js", "text/js", PerformSubstitution = true)]
-
- /// <summary>
- /// Gets or sets the text content of the <see cref="T:System.Web.UI.WebControls.TextBox"/> control.
- /// </summary>
- /// <value></value>
- /// <returns>The text displayed in the <see cref="T:System.Web.UI.WebControls.TextBox"/> control. The default is an empty string ("").</returns>
- [Category("Appearance")]
- [Browsable(true)]
- public override string Text
- {
- get
- {
- return base.Text;
- }
- set
- {
- base.Text = value;
- }
- }
-
- /// <summary>
- /// _errorMessage
- /// </summary>
- private string _errorMessage;
-
- /// <summary>
- /// Gets or sets the error message.
- /// </summary>
- /// <value>The error message.</value>
- [Category("Appearance")]
- [Browsable(true)]
- public string ErrorMessage
- {
- get { return _errorMessage; }
- set { _errorMessage = value; }
- }
-
- public event EventHandler<EventArgs> ValueChanged;
-
- protected override void OnInit(EventArgs e)
- {
- base.OnInit(e);
- //this.PreRender += new EventHandler(MoneyTextBox_PreRender);
- this.TextChanged += new EventHandler(txtMoney_TextChanged);
- }
-
- protected void txtMoney_TextChanged(object sender, EventArgs e)
- {
- if (ValueChanged != null)
- ValueChanged(this, EventArgs.Empty);
- }
-
- /// <summary>
- /// Registers client script for generating postback events prior to rendering on the client, if <see cref="P:System.Web.UI.WebControls.TextBox.AutoPostBack"/> is true.
- /// </summary>
- /// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
- protected override void OnPreRender(EventArgs e)
- {
- string scriptName = "MoneyConverter";
-
- if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptName))
- {
- //Attributes.Add("onChange", string.Format("test()"));
- Attributes.Add("onChange", string.Format("RegisterEvents(this)"));
- //Attributes.Add("onKeyPress", "return afterNumericTextKeyPress(event,this)");
- this.Page.ClientScript.RegisterClientScriptInclude(
- this.GetType(),
- "Testpp3",
- Page.ClientScript.GetWebResourceUrl(this.GetType(),
- "WebControlLibrary1.Javascripts.Money.js"));
- }
-
- base.OnPreRender(e);
- }
-
- public decimal Value
- {
- get
- {
- string strValue = Text.Trim(' ', '+', ' ');
- StringBuilder builder = new StringBuilder();
- foreach (char c in strValue)
- {
- if (c == ' ')
- continue;
- if (Char.IsDigit(c) || c == '.')
- {
-
- builder.Append(c);
- }
- else if (c == ',')
- {
- builder.Append('.');
- }
- else
- {
- break;
- }
- }
- decimal value;
- if (!decimal.TryParse(builder.ToString(), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out value))
- {
- return 0;
- }
- return value;
- }
- set
- {
- Text = value.ToString("### ### ##0.00", CultureInfo.InvariantCulture).Replace(".", ",").Trim();
- }
- }
-
- public string InnerTexboxClientID
- {
- get
- {
- return this.ClientID;
- }
- }
- }
- }
namespace WebControlLibrary1
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
[DefaultProperty("Text")]
[ToolboxData("<{0}:MoneyTextBox runat=server>")]
public class MoneyTextBox : TextBox
{
//ajouter cette ligne dans assembly info pour que le js soit inclu
//[assembly: System.Web.UI.WebResource("WebControlLibrary1.Javascripts.Money.js", "text/js", PerformSubstitution = true)]
/// <summary>
/// Gets or sets the text content of the <see cref="T:System.Web.UI.WebControls.TextBox"/> control.
/// </summary>
/// <value></value>
/// <returns>The text displayed in the <see cref="T:System.Web.UI.WebControls.TextBox"/> control. The default is an empty string ("").</returns>
[Category("Appearance")]
[Browsable(true)]
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
/// <summary>
/// _errorMessage
/// </summary>
private string _errorMessage;
/// <summary>
/// Gets or sets the error message.
/// </summary>
/// <value>The error message.</value>
[Category("Appearance")]
[Browsable(true)]
public string ErrorMessage
{
get { return _errorMessage; }
set { _errorMessage = value; }
}
public event EventHandler<EventArgs> ValueChanged;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//this.PreRender += new EventHandler(MoneyTextBox_PreRender);
this.TextChanged += new EventHandler(txtMoney_TextChanged);
}
protected void txtMoney_TextChanged(object sender, EventArgs e)
{
if (ValueChanged != null)
ValueChanged(this, EventArgs.Empty);
}
/// <summary>
/// Registers client script for generating postback events prior to rendering on the client, if <see cref="P:System.Web.UI.WebControls.TextBox.AutoPostBack"/> is true.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
protected override void OnPreRender(EventArgs e)
{
string scriptName = "MoneyConverter";
if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptName))
{
//Attributes.Add("onChange", string.Format("test()"));
Attributes.Add("onChange", string.Format("RegisterEvents(this)"));
//Attributes.Add("onKeyPress", "return afterNumericTextKeyPress(event,this)");
this.Page.ClientScript.RegisterClientScriptInclude(
this.GetType(),
"Testpp3",
Page.ClientScript.GetWebResourceUrl(this.GetType(),
"WebControlLibrary1.Javascripts.Money.js"));
}
base.OnPreRender(e);
}
public decimal Value
{
get
{
string strValue = Text.Trim(' ', '+', ' ');
StringBuilder builder = new StringBuilder();
foreach (char c in strValue)
{
if (c == ' ')
continue;
if (Char.IsDigit(c) || c == '.')
{
builder.Append(c);
}
else if (c == ',')
{
builder.Append('.');
}
else
{
break;
}
}
decimal value;
if (!decimal.TryParse(builder.ToString(), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out value))
{
return 0;
}
return value;
}
set
{
Text = value.ToString("### ### ##0.00", CultureInfo.InvariantCulture).Replace(".", ",").Trim();
}
}
public string InnerTexboxClientID
{
get
{
return this.ClientID;
}
}
}
}
Historique
- 28 mars 2010 08:51:14 :
- ajout de la solution :(
- 28 mars 2010 13:38:56 :
- il n'y a maintenant que les chiffres autorises a la saisie
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Bibliotheques de types (DLL) [ par jeff ]
Bonjour à toutes et à tous,Voilà mon pb :je dois recoder des fonctions écrites en javascript en VB.Les fonctions javascript sont contenues dans des fi
Probleme en javascript [ par yoyo ]
Salut,mon pb en javascript est celui-ci.G une fonction du genre<script language=javascript><!--function supprimer(formulaire){ formulaire.cha
Reactualiser en javascript [ par yoyo ]
Comment faire pour reactualiser en javascript?Est ce qu'il existe une methode?MerciBisousYoyo
SmartUpload, JavaScript et IE 5.5 [ par semhur ]
Salut,J'utilise un Javascript pour tester que les internautes ont bien rempli les champs d'un formulaire d'upload de fichier.Si certains des champs so
Utiliser Server.Execute à la place des inclusions côté serveur avec JavaScript [ par blizar2000 ]
Voila, e, fait je voudrais utiliser Server.Execute avec javascript mais je ne comprend pas comment y arriver je vous donne une ligne de code et si vou
appel de fonction ASP(vbscript) depuis un script Javascript [ par francis ]
bonjour,je n'arrive pas à appeler une fonction en ASP(vbscript) depuis un script écrit en javascript.Ceci car je veux mettre en variable session un va
problème javascript [ par nata ]
if ((typeof w.opener) == "object") { reload_bdc(w.opener); w.close(); }else{ w.document.location.href = "../commande.asp?menu=cde&action=1"; }Sous
Date Creation fichier + javascript [ par chou ]
Je voudrais acceder a l'info suivante sur ma page web intranet : la dte de creation d'un fhichier sur ma machine que je vais uploader sur le server.Qu
javascript cookie VS asp cookie [ par leegend ]
Salut a tout les développeurs du monde!j'ai créé un cookie dans mon fichier global.asa et il a la structure suivante:Response.Cookies("logiweb")("numé
Récupérer les paramètres d'une page asp en javascript [ par rw72000 ]
Comment faut-il faire pour récupérer les paramètres d'une page asp dans une fontion jscript.En vbscript ça donne request("machin")Seulement ça n'exist
|
Derniers Blogs
CONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATERCONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATER par pierre
Si vous hésitez encore à venir à la conférence, ci-après 10 bonnes raisons pour ne pas rater cet évènement unique : La Conf'SharePoint, c'est la 1ère conférence en France et en Français dédié à SharePoint : pas de barrière de la langue La Conf...
Cliquez pour lire la suite de l'article par pierre [EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON[EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON par thavo
Agile.Net France débarque à Lyon fin juin !! Je viens d'arriver à Lyon, et l'Agile .Net France aussi. Pour ceux/celles qui habitent en Rhône-Alpes, seriez-vous disponible pour une soirée « Agile .Net France » ?? (je sais que certains vi...
Cliquez pour lire la suite de l'article par thavo SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10)SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10) par ROMELARD Fabrice
Depuis plusieurs mois, Microsoft a publié un patch (comme très régulièrement) qui est passé relativement inaperçu à l'époque. L'arrivée de plus en plus de postes sous Windows 8 et surtout le déploiement par Windows Update de ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM"AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM" par neodante
Alors qu'il n'était qu'en Beta et que quelques dysfonctionnements persistaient, la nouvelle version du fabuleux script AutoSPInstaller permettant d'installer SharePoint 2010/2013 en full script (idéal pour répliquer des fermes de dev/qual/prod) est mainte...
Cliquez pour lire la suite de l'article par neodante
Forum
BASE DE DONNéESBASE DE DONNéES par oumessad
Cliquez pour lire la suite par oumessad
Logiciels
Devis-Factures PHMSD (2.1.0.1)DEVIS-FACTURES PHMSD (2.1.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD Ludoprêt (3.2)LUDOPRêT (3.2)Logiciel gratuit de gestion de ludothèque.
Gestion des jeux et des adhérents.
Gestion des for... Cliquez pour télécharger Ludoprêt Revealer Keylogger Free (2.05)REVEALER KEYLOGGER FREE (2.05)Keylogger invisible et gratuit pour Windows 8, 7, Vista ou XP. Revealer Keylogger Free vous perme... Cliquez pour télécharger Revealer Keylogger Free 974 Application Server (13.2.1.3)974 APPLICATION SERVER (13.2.1.3)Ecommerce, Blogueur, Vitrine, Newsletter, Java IDE, ..., in the cloud et sous haute dispo. Facile... Cliquez pour télécharger 974 Application Server WDmemoCode (1.0.0)WDMEMOCODE (1.0.0)WDmemoCode a été créé pour aider les développeurs Windev à créer/compléter et conserver une base ... Cliquez pour télécharger WDmemoCode
|