je voudrais savoir s'il existe par d=E9faut un control=20
graphic, genre TextBox, avec un boutton au bout de la zone=20
de saisie.
Du mm style que Visual .Net, lorsque l'on va dans les=20
propri=E9t=E9s d'un projet, puis Common Properties->General,=20
lorsque l'on clique sur Application Icon, dans la zone de=20
texte apparait un boutton qui ouvre un browser si lo'n=20
clique dessus.
Pas que ce soit difficile de refaire, mais pourquoi=20
r=E9inventer la roue??
Merci bien.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Mercier
Bonjour,
c'est (très) facile. Il suffit de créer un server control qui hérite de la classe TextBox et qui surchage la méthode Render et y ajouter le contrôle bouton "au bout". L'exemple ci-dessous fait en sorte que l'orsqu'on click sur la fenêtre appelante, la fenêtre pop-up se ferme (fonction quit() sur le onfocus). Ce comportement peut-être modifié évidemment. Vous noterez l'utilisation de la propriété this.ClientID qui contient le nom javascript du control qui est calculé par ASP.NET si le controle est imbriqué dans la hériarchie des contrôles de la page.
using System; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.ComponentModel; using System.Diagnostics;
namespace MonNamespace { public class SearchTextBox : TextBox { private int _searchPanelWidth = 300; private int _searchPanelHeight = 200;
#region -- Constucteurs public SearchTextBox() { } #endregion
#region -- Propriétés publiques /// <summary> /// Obtient ou définit la largeur de la fenêtre pop-up qui s'affiche sur le click du bouton /// </summary> public string SearchPanelWidth { get { return _searchPanelWidth.ToString(); } set { try { _searchPanelWidth = Int32.Parse(value); } catch { _searchPanelWidth = 300; // Valeur par défaut } } }
/// <summary> /// Obtient ou définit la hauteur de la fenêtre pop-up qui s'affiche sur le click du bouton /// </summary> public string SearchPanelHeight { get { return _searchPanelHeight.ToString(); } set { try { _searchPanelHeight = Int32.Parse(value); } catch { _searchPanelHeight = 200; // Valeur par défaut } } }
/// <summary> /// Obtient ou définit l'url de la page à afficher dans la fenêtre pop-up. /// </summary> public string PanelUrl { get { return _panelUrl; } set { _panelUrl = value; } } #endregion
/// <summary> /// Ajoute un bouton à droite de la zone de texte (TextBox). /// </summary> /// <param name="writer"></param> /// <remarks> /// l'url d'appel de la fenêtre pop-up contient le nom du controle à remplir sur un événement click dans la fenêtre pop-up. Cela /// permet de peupler la zone de texte dans la fenêtre appelante en utilisant un javascript /// du type "self.opener.document.forms[0]['nom_du_control'].value valeur (valeur provenant de la fenêtre pop-up). /// </remarks> protected override void Render(HtmlTextWriter writer) { base.Render (writer); writer.WriteBeginTag("input"); writer.WriteAttribute("type", "button"); writer.WriteAttribute("id", "displaypanel"); writer.WriteAttribute("name", "displaypanel"); writer.WriteAttribute("value", "..."); writer.WriteAttribute("onclick", String.Format("displaywindow(this,'{0}','{1}',{2},{3});",_panelUrl, this.ClientID, _searchPanelWidth, _searchPanelHeight)); writer.Write(HtmlTextWriter.TagRightChar); }
#endregion
} }
Cordialement, Pascal Mercier Microsoft France - MCS
wrote in message news:09a301c4aaef$329a5fa0$ bonjour,
je voudrais savoir s'il existe par défaut un control graphic, genre TextBox, avec un boutton au bout de la zone de saisie. Du mm style que Visual .Net, lorsque l'on va dans les propriétés d'un projet, puis Common Properties->General, lorsque l'on clique sur Application Icon, dans la zone de texte apparait un boutton qui ouvre un browser si lo'n clique dessus.
Pas que ce soit difficile de refaire, mais pourquoi réinventer la roue?? Merci bien.
Christophe
Bonjour,
c'est (très) facile. Il suffit de créer un server control qui hérite de la
classe TextBox et qui surchage la méthode Render et y ajouter le contrôle
bouton "au bout".
L'exemple ci-dessous fait en sorte que l'orsqu'on click sur la fenêtre
appelante, la fenêtre pop-up se ferme (fonction quit() sur le onfocus). Ce
comportement peut-être modifié évidemment. Vous noterez l'utilisation de la
propriété this.ClientID qui contient le nom javascript du control qui est
calculé par ASP.NET si le controle est imbriqué dans la hériarchie des
contrôles de la page.
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.ComponentModel;
using System.Diagnostics;
namespace MonNamespace
{
public class SearchTextBox : TextBox
{
private int _searchPanelWidth = 300;
private int _searchPanelHeight = 200;
#region -- Constucteurs
public SearchTextBox()
{
}
#endregion
#region -- Propriétés publiques
/// <summary>
/// Obtient ou définit la largeur de la fenêtre pop-up qui s'affiche sur
le click du bouton
/// </summary>
public string SearchPanelWidth
{
get
{
return _searchPanelWidth.ToString();
}
set
{
try
{
_searchPanelWidth = Int32.Parse(value);
}
catch
{
_searchPanelWidth = 300; // Valeur par défaut
}
}
}
/// <summary>
/// Obtient ou définit la hauteur de la fenêtre pop-up qui s'affiche sur
le click du bouton
/// </summary>
public string SearchPanelHeight
{
get
{
return _searchPanelHeight.ToString();
}
set
{
try
{
_searchPanelHeight = Int32.Parse(value);
}
catch
{
_searchPanelHeight = 200; // Valeur par défaut
}
}
}
/// <summary>
/// Obtient ou définit l'url de la page à afficher dans la fenêtre pop-up.
/// </summary>
public string PanelUrl
{
get
{
return _panelUrl;
}
set
{
_panelUrl = value;
}
}
#endregion
/// <summary>
/// Ajoute un bouton à droite de la zone de texte (TextBox).
/// </summary>
/// <param name="writer"></param>
/// <remarks>
/// l'url d'appel de la fenêtre pop-up contient le nom du controle à
remplir sur un événement click dans la fenêtre pop-up. Cela
/// permet de peupler la zone de texte dans la fenêtre appelante en
utilisant un javascript
/// du type "self.opener.document.forms[0]['nom_du_control'].value valeur (valeur provenant de la fenêtre pop-up).
/// </remarks>
protected override void Render(HtmlTextWriter writer)
{
base.Render (writer);
writer.WriteBeginTag("input");
writer.WriteAttribute("type", "button");
writer.WriteAttribute("id", "displaypanel");
writer.WriteAttribute("name", "displaypanel");
writer.WriteAttribute("value", "...");
writer.WriteAttribute("onclick",
String.Format("displaywindow(this,'{0}','{1}',{2},{3});",_panelUrl,
this.ClientID, _searchPanelWidth, _searchPanelHeight));
writer.Write(HtmlTextWriter.TagRightChar);
}
#endregion
}
}
Cordialement,
Pascal Mercier
Microsoft France - MCS
<anonymous@discussions.microsoft.com> wrote in message
news:09a301c4aaef$329a5fa0$a601280a@phx.gbl...
bonjour,
je voudrais savoir s'il existe par défaut un control
graphic, genre TextBox, avec un boutton au bout de la zone
de saisie.
Du mm style que Visual .Net, lorsque l'on va dans les
propriétés d'un projet, puis Common Properties->General,
lorsque l'on clique sur Application Icon, dans la zone de
texte apparait un boutton qui ouvre un browser si lo'n
clique dessus.
Pas que ce soit difficile de refaire, mais pourquoi
réinventer la roue??
Merci bien.
c'est (très) facile. Il suffit de créer un server control qui hérite de la classe TextBox et qui surchage la méthode Render et y ajouter le contrôle bouton "au bout". L'exemple ci-dessous fait en sorte que l'orsqu'on click sur la fenêtre appelante, la fenêtre pop-up se ferme (fonction quit() sur le onfocus). Ce comportement peut-être modifié évidemment. Vous noterez l'utilisation de la propriété this.ClientID qui contient le nom javascript du control qui est calculé par ASP.NET si le controle est imbriqué dans la hériarchie des contrôles de la page.
using System; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.ComponentModel; using System.Diagnostics;
namespace MonNamespace { public class SearchTextBox : TextBox { private int _searchPanelWidth = 300; private int _searchPanelHeight = 200;
#region -- Constucteurs public SearchTextBox() { } #endregion
#region -- Propriétés publiques /// <summary> /// Obtient ou définit la largeur de la fenêtre pop-up qui s'affiche sur le click du bouton /// </summary> public string SearchPanelWidth { get { return _searchPanelWidth.ToString(); } set { try { _searchPanelWidth = Int32.Parse(value); } catch { _searchPanelWidth = 300; // Valeur par défaut } } }
/// <summary> /// Obtient ou définit la hauteur de la fenêtre pop-up qui s'affiche sur le click du bouton /// </summary> public string SearchPanelHeight { get { return _searchPanelHeight.ToString(); } set { try { _searchPanelHeight = Int32.Parse(value); } catch { _searchPanelHeight = 200; // Valeur par défaut } } }
/// <summary> /// Obtient ou définit l'url de la page à afficher dans la fenêtre pop-up. /// </summary> public string PanelUrl { get { return _panelUrl; } set { _panelUrl = value; } } #endregion
/// <summary> /// Ajoute un bouton à droite de la zone de texte (TextBox). /// </summary> /// <param name="writer"></param> /// <remarks> /// l'url d'appel de la fenêtre pop-up contient le nom du controle à remplir sur un événement click dans la fenêtre pop-up. Cela /// permet de peupler la zone de texte dans la fenêtre appelante en utilisant un javascript /// du type "self.opener.document.forms[0]['nom_du_control'].value valeur (valeur provenant de la fenêtre pop-up). /// </remarks> protected override void Render(HtmlTextWriter writer) { base.Render (writer); writer.WriteBeginTag("input"); writer.WriteAttribute("type", "button"); writer.WriteAttribute("id", "displaypanel"); writer.WriteAttribute("name", "displaypanel"); writer.WriteAttribute("value", "..."); writer.WriteAttribute("onclick", String.Format("displaywindow(this,'{0}','{1}',{2},{3});",_panelUrl, this.ClientID, _searchPanelWidth, _searchPanelHeight)); writer.Write(HtmlTextWriter.TagRightChar); }
#endregion
} }
Cordialement, Pascal Mercier Microsoft France - MCS
wrote in message news:09a301c4aaef$329a5fa0$ bonjour,
je voudrais savoir s'il existe par défaut un control graphic, genre TextBox, avec un boutton au bout de la zone de saisie. Du mm style que Visual .Net, lorsque l'on va dans les propriétés d'un projet, puis Common Properties->General, lorsque l'on clique sur Application Icon, dans la zone de texte apparait un boutton qui ouvre un browser si lo'n clique dessus.
Pas que ce soit difficile de refaire, mais pourquoi réinventer la roue?? Merci bien.