Remplissage d'une datagrid lors du passage en mode edit
Trinita16
Messages postés199Date d'inscriptionlundi 22 juillet 2002StatutMembreDernière intervention14 juin 2006
-
16 févr. 2004 à 17:47
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 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,
A voir également:
Remplissage d'une datagrid lors du passage en mode edit
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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
Trinita16
Messages postés199Date d'inscriptionlundi 22 juillet 2002StatutMembreDernière intervention14 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é !
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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"
Trinita16
Messages postés199Date d'inscriptionlundi 22 juillet 2002StatutMembreDernière intervention14 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 ..
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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
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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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.