Web user control dans un gridview, postback problème Container.DataItem

Leghvon Messages postés 1 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 24 juillet 2007 - 24 juil. 2007 à 00:07
cs_Yxion Messages postés 219 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 7 septembre 2009 - 24 juil. 2007 à 15:49
Bonjour,

Je dois dire d'habite je trouve en cherchant mais là ! je suis sur un os. Merci d'avance.
Ma question est très simple j'ai un gridview où je place un web user control dans un templatefield. Voici un exemple :

<asp:GridView
ID= "GridView1"
runat="server"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="False">

<Columns>

<asp:TemplateField>

<ItemTemplate><

asp:TextBoxID="TextBox1"Text='<%# Bind("music_track_filename") %>'runat="server"></asp:TextBox>

<TT:test
ID="test"
runat="server"
prop='<%# Bind("music_track_filename") %>
'
Visible="true"
/>

</ItemTemplate>

</asp:TemplateField>

</Columns>
Et un bouton  ....

<asp:Button
ID="Button1"
runat="server"
Text="Button"
/>

Voici le ascx :

Imports

System

Imports System.ComponentModel

Imports System.Web.UI

Imports System.Web

Imports System.Web.UI.WebControls
Partial

Class test

Inherits System.Web.UI.UserControl

Dim _properties
As
StringTrue), Category(
"Appearance"), DefaultValue(
"")>
Property [prop]()
As
String

   Get
   Return _properties

   End
Get

   Set(
ByVal Value
As
String)
   _properties = Value

End
Set

End
Property

Protected
Sub Page_PreRender(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.PreRender

   Dim Controltest
As TextBox =
New TextBox
   Controltest.Text = _properties

   Me.Controls.Add(Controltest)

End
SubEnd

Class

Mon problème est le suivant, je charge la page, nickel ... les valeurs se place dans le textbox "TextBox1" et dans le user control .. mais lorsque je clique sur le bouton ... ! je garde le viewstate de mon textbox1 mais pas mon user control !...

certainement évident ... mais pas moyen de trouver la solution ..

j'ai essaye plein de chose, je pense que le problème proviens du fait que c'est un control ajouté dans un user control .... mais bon je voudrais pouvoir y arriver.

Merci d'avance.

1 réponse

cs_Yxion Messages postés 219 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 7 septembre 2009
24 juil. 2007 à 15:49
tu dois utiliser le ViewState dans tes déclarations de variables, et supprimer ta variable private :

Property [prop]() AsString

   Get
   Return ViewState["myProperty"]
   EndGet

   Set(ByVal Value AsString)
   ViewState["myProperty"] = Value
   EndSet

Vérifies le null pour le return et adapte, je fais ca de tete et je pratique que C#.

<hr />
I love .net
0
Rejoignez-nous