Remplissage d'une datagrid lors du passage en mode edit

Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006 - 16 févr. 2004 à 17:47
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 18 févr. 2005 à 12:20
bonjour,

J'ai un petit problème, je voudrais savoir si il est possible de remplir le textbox avec une valeur perso lors du passage en mode edit dans une datagrid ....

J'ai bien un peu fouillé du côté des templates columms mais ...

Merci d'avance

8-) :-p

Trinita,

17 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
16 févr. 2004 à 19:47
Si j'ai à peu pré compris la question il faut que tu rajoutes dans le code html de ton datagrid:

<EditItemTemplate>
/>
</EditItemTemplate>

Dans le code

Sub dg_EditCommand(sender as Oject, e as DatalistCommandEventArgs)
dg.EdititemIndex = CInt(e.Item.ItemIndex)
dg.DataSource = mArray ' c'est ta source de donnée
dg.Databind()
end sub

Normalement ca marche mais si t'as des problemes dis le moi

Cyril (Alias Jesusonline)
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
17 févr. 2004 à 09:28
Slt d'abord merci de me consacrer un peu de temps.

En fait cette partie la je sais faire.
Ce que je veux c'est que lorsque je passe en mode edit, je voudrais remplir le champ éditable avec une valeur.

Merci d'avance ....

8-) :-p

Trinita,
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 févr. 2004 à 10:57
Comment ca avec une valeur ? une valeur par défaut dans ton textbox ?

Sinon je comprend pas la question :-/

@+

Cyril (Alias Jesusonline)
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
17 févr. 2004 à 13:51
non en fait qu'en tu passes en mode edit les champs sont modifiables. et je veux remplir un champ modifiable de la datagrid par une valeur

8-) :-p

Trinita,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 févr. 2004 à 14:59
Je comprend toujours pas. Je suis bête [:'(]

Je sais que qd je passe en mode Edit tu te retrouves dans cette partie du datagrid :
<EditItemTemplate>
/>
</EditItemTemplate>

Ensuite tu es d'accord que tu peut mettre du texte dans ton textbox ?
Et apres je vois pas :sad)

Tu veux que la valeur que tu rentres soit ensuite grace à un bouton OK ou modifier inclus dans ton datagrid en mode normal ?

Je comprend vraiment pas.
Je peux avoir un bout de code qui m'aiderais à comprendre ?

Cyril (Alias Jesusonline)
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
18 févr. 2004 à 10:16
Slt

en fait qu'en du passe en mode edit tu peux avoir un code qui ressemble à ça :

private void Select_Modif(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
ListePrévision.EditItemIndex = (int)e.Item.ItemIndex;
ChargeDataBind();
}
Qui la fonction qui cherche le clic "EditCommand" et bien à ce moment la je voudrais pré remplir les champs de type Textbox de la ligne du DataGrid sélectionné !

Encore Merci pour tes efforts ..... :approve)

8-) :-p

Trinita,
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 févr. 2004 à 13:56
Si j'ai bien compris: tu as un datagrid avec des valeurs et un bouton editer sur chaque ligne

Ensuite qd tu cliques sur le bouton editer ta ligne se transfrome en mode edit donc tu as un textbox ? et tu veux que ce textbox soit pré remplis avec une valeur par défaut ?

<EditItemTemplate>
/>
</EditItemTemplate>

Ton textbox que tu veux remplir c'est celui ci ?
donc tu n'as qu'a faire :
/>
ou
txtbox.text="mon texte"

j'espere t'avoir éclairé

Cyril (Alias Jesusonline)
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
20 févr. 2004 à 09:56
Encore Merci pour ton aide, c'est pas aussi simple que de faire txtbox.text="mon texte" mais je pense que je suis sur la bonne voie .... en travaillant sur les lignes et colonnes du datagrid ..

Encore merci @+

8-) :-p

Trinita,
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
20 févr. 2004 à 10:47
Re,

En fait je me borné à essayer en code behind et je l'ai fait dans le aspx sous la forme ....

'>

Intranet_STGA.commun.tools.DateDuJour() => me retourne la date du jour ou autre fonction ....

Voila en fait je voulais que se soit dynamique

ENCORE MERCI ......... :big)

8-) :-p

Trinita,
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 févr. 2004 à 11:46
Finalement je suis peut etre pas si bête que ca :) car il me semble que c'est ce que j'ai mis dans mon premier message :-p

Bon Coding

Cyril (Alias Jesusonline)
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
20 févr. 2004 à 11:48
OUI en effet ...

Mais je suis un peu trop borné des fois ....

MERCI,
:blush)
8-) :-p

Trinita,
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 févr. 2004 à 12:33
Moi aussi je suis borné, et pas que des fois ;) mais je pense qu'il doit y avoir moyen d'y modifier par le code behind, mais je pense que cette méthode est plus simple, meme si j'aime pas trop écrire du code VB dans la page HTML.

Je vais essayer de trouver comment on modifie ca en code behind

@+

Cyril (Alias Jesusonline)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 févr. 2004 à 12:41
J'ai trouvé un début de solution, mais ca impose de faire tout l'element edititemtemplate en code behind, ce qui est assez compliqué au début mais ensuite on comprend assez vite donc voila ce que j'ai fait :

Dim textbox2 As New TextBox
textbox2.Text = "Text"
Dg.EditItemTemplate.InstantiateIn(textbox2)

J'ai pas testé car j'ai pas le temps et je vais partir, mais je pense que la syuntaxe doit etre à peu prés ca

@+

Cyril (Alias Jesusonline)
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
17 févr. 2005 à 17:56
Salut,


en fait, en Delphi.Net, ça ne marche pas, est-ce normal ?

dgDonnees := DataGrid.Create;
dgDonnees.DataSource := ma_source
chk := CheckBox.Create;
chk.Text := 'Bonjour';
dgcOte := TemplateColumn.Create;
dgcOte.HeaderText := 'Oter';
dgcOte.ItemTemplate.InstantiateIn(chk); // ça pète ici
dgDonnees.Columns.Add(dgcOte);
dgDonnees.DataBind;

Auris-je oublié une étape ?

David, à VERSAILLES
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 févr. 2005 à 18:20
Ca te donne quoi comme message d'erreur ?



Je me rappelle plus trop de ce problème et j'arrete d'apprendre .net 1, je vais me consacrer a .net 2 des que j'aurais finit de réviser pour passer un MCP asp.net



Il y a recemment eu un article de paru la dessus sur dotnet-tech = >
http://www.dotnet-news.com/site.aspx?r=Dotnet-Tech je crois que c'etait
le controle Riche



voici l'exemple donné dans le msdn, si des fois ca peut t'aider.



The following example demonstrates a simple templated server control that uses
the ITemplate interface to create a templated property.


[Visual Basic]
Imports System
Imports System.Web
Imports System.Web.UI

Namespace TemplateControlSamplesVB

Public Class TemplateItem
Inherits Control
Implements INamingContainer

Private _message As String = Nothing

Public Sub New(Message As String)
_message = message
End Sub

Public Property Message As String
Get
Return _message
End Get
Set
_message = Value
End Set
End Property
End Class
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust"), _
ParseChildren(true)> _
Public Class Template1VB
Inherits Control
Implements INamingContainer

Private _messageTemplate As ITemplate = Nothing
Private _message As String = Nothing

Public Property Message As String

Get
Return _message
End Get
Set
_message = Value
End Set
End Property

<TemplateContainer(GetType(TemplateItem))> _
Public Property MessageTemplate As ITemplate

Get
Return _messageTemplate
End Get
Set
_messageTemplate = Value
End Set
End Property

Protected Overrides Sub CreateChildControls()

' If a template has been specified, use it to create children.
' Otherwise, create a single LiteralControl with the message value.

If Not (MessageTemplate Is Nothing)
Controls.Clear()
Dim I As New TemplateItem(Me.Message)
MessageTemplate.InstantiateIn(I)
Controls.Add(I)
Else
Me.Controls.Add(New LiteralControl(Me.Message))
End If
End Sub

End Class





<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
18 févr. 2005 à 09:25
Le message est tout ce qu'il y a de plus bateau:
La référence d'objet n'est pas définie à une instance d'un objet

J'ai essayé de reproduire ton code, mais je dois avouer que je m'y perds un peu...

Peut-tu me décrire ce qu'il fait exactement STP (en algorithme).

David, à VERSAILLES
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 févr. 2005 à 12:20
Je n'ai aucune idée de ce que fait ce code lol

The following example demonstrates a simple templated server control that uses
the ITemplate interface to create a templated property.


Je l'ai pris dans l'aide, sur la propriété qui pose problème chez toi c'est tout.



T'as essayé de mettre ce code dans une classe, puis de te servir de ce
composant ? a mon avis il doit faire un control et ensuite on peut lier
notre code comme dans un datagrid.



Cyril - http://Hoshimi.CodeS-SourceS.fr
0
Rejoignez-nous