Bonjour,

Je suis sous ASP .NET 1.1 C#.

Je travail avec un datagrid dans lequel j'insere des données et les supprime. J'aimerai les modifer aussi. cependant a partir du moment ou j'ouvre ma ligne, plus aucun de mes événements rattacher a mes bouton, textbox et dropdownlist ne fonctionnent... rien n'est pris en compte pourtant j'emploie la même méthode que pour mon ajout (copier coller avec 2/3 modifications).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
 
private void CreateAndDispatchDataSource()
{
 
	person_count = new int[] { 0, 0, 0, 0, 0 } ;		
	SP sp = null ;
	SqlDataReader dr = null ;
	DataTable[] dt = null ;
 
	try
	{
		sp = new SP( "af_360_GetAssessors", "@AF360_ID", af_manager.ID360 ) ;
		dr = sp.QueryDataReader() ;
 
		dt = new DataTable[5] ;
		dt[0] = new DataTable() ;
		dt[1] = new DataTable() ;
		dt[2] = new DataTable() ;
		dt[3] = new DataTable() ;
		dt[4] = new DataTable() ;
 
		for( int i = 2 ; i <= 4 ; i ++ )
		{
			dt[i].Columns.Add( new DataColumn( "ID",			typeof( int		))) ;
			dt[i].Columns.Add( new DataColumn( "Title_ID",		typeof( int		))) ;
			dt[i].Columns.Add( new DataColumn( "Last_Name",		typeof( string	))) ;
			dt[i].Columns.Add( new DataColumn( "First_Name",	typeof( string	))) ;
			dt[i].Columns.Add( new DataColumn( "Email",			typeof( string	))) ;
			dt[i].Columns.Add( new DataColumn( "Role_360_ID",	typeof( int		))) ;
			dt[i].Columns.Add( new DataColumn( "Status_ID",		typeof( int		))) ;
			dt[i].Columns.Add( new DataColumn( "Language_ID",	typeof( int		))) ;
		}
 
		while( dr.Read() )
		{
			int role_id = (int) dr["Role_360_ID"] ;
			object[] row = new object[8] ;
			dr.GetValues( row ) ;
			dt[role_id].Rows.Add( row ) ;
 
			person_count[role_id] ++ ;
		}			
 
		for( int table_id = 2 ; table_id <= 4 ; table_id++ )
		{	
			Table table = (Table)FindControl( "Table" + table_id ) ; //= new Table() ;
			bool alternate = false ;
			table.Rows.Clear() ;
			table.CellSpacing = 1 ;
			table.CellPadding = 4 ;
			table.CssClass = "datagrid" ;
 
 
			// BEGIN HEADER
			TableRow	tr = new TableRow() ;
			tr.CssClass = "datagrid_header" ;
			TableCell	tc1 = new TableCell() ;
			TableCell	tc2 = new TableCell() ;
			TableCell	tc3 = new TableCell() ;
			TableCell	tc4 = new TableCell() ;
			TableCell	tc6 = new TableCell() ;
			TableCell	tc5 = new TableCell() ;
			TableCell	tc7 = new TableCell() ;
 
			tc1.Text = af_manager.Translate( "Title" ) ;
			tc1.Width = Unit.Pixel(  70 ) ;
			tc2.Text = af_manager.Translate( "First_Name" ) ;
			tc2.Width = Unit.Pixel( 130 ) ;
			tc3.Text = af_manager.Translate( "Last_Name" ) ;
			tc3.Width = Unit.Pixel( 130 ) ;
			tc4.Text = af_manager.Translate( "Email" ) ;
			tc4.Width = Unit.Pixel( 180 ) ;
			tc6.Text = af_manager.Translate( "Language" ) ;
			tc6.Width = Unit.Pixel( 80 ) ;
			tc5.Width = Unit.Pixel( 40 ) ;
			tc5.HorizontalAlign = HorizontalAlign.Center ;
			tc7.Width = Unit.Pixel( 40 ) ;
			tc7.HorizontalAlign = HorizontalAlign.Center ;
 
			if( af_manager.Lock360 )
				tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6 } ) ;
			else
				tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6, tc7, tc5 } ) ;
 
			table.Rows.Add( tr ) ;
			// END HEADER	
 
 
			int row_count = dt[table_id].Rows.Count ;
 
			for( int row_index = 0 ; row_index < row_count ; row_index++ )
			{	
				DataRow row = dt[table_id].Rows[row_index] ;
				alternate = ! alternate ;
 
				tr = new TableRow() ;
				tc1 = new TableCell() ;
				tc2 = new TableCell() ;
				tc3 = new TableCell() ;
				tc4 = new TableCell() ;
				tc6 = new TableCell() ;
				tc5 = new TableCell() ;
				tc7 = new TableCell() ;
 
				//Ajout de l'édition d'une observateur
				//Briffaut Kevin le 12/07/07
				if(IdToEdit != 0 && Convert.ToInt32(row["ID"]) == IdToEdit && !af_manager.Lock360)
				{					
					tr.CssClass = string.Format( "datagrid_{0}item" , alternate ? "" : "alternate_" ) ;
 
					DropDownList ddl = null ;
					ddl = new DropDownList() ;
					ddl.CssClass = "dropdownlist" ;
					ddl.ID = "ddl" + row["ID"].ToString() ;
					ddl.Items.Add( new ListItem( ""		  , "0" ) ) ;
					ddl.Items.Add( new ListItem( titles[1], "1" ) ) ;
					ddl.Items.Add( new ListItem( titles[2], "2" ) ) ;
					ddl.Items.Add( new ListItem( titles[3], "3" ) ) ;
					ddl.Items.FindByValue( row["Title_ID"].ToString() ).Selected = true;
					ddl.SelectedIndexChanged += new EventHandler( DG_TitleID ) ; // Exemple d'un évenement qui ne fonctionnent pas
					ddl.Width = Unit.Percentage( 100 ) ;
					tc1.Controls.Add( ddl ) ;
					TextBox tx = new TextBox() ;
					tx.CssClass = "textbox" ;
					tx.ID = "first_name" + row["ID"].ToString() ;
					tx.TextChanged += new EventHandler( DG_FirstName ) ; //un autre
					tx.Width = Unit.Percentage( 100 ) ;
					tx.Text = row["First_Name"].ToString() ;
					tc2.Controls.Add( tx ) ;
 
					//etc...								tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6, tc5 } ) ;
					table.Rows.Add( tr ) ;
 
 
				}
				else
				{//Affichage des données
 
					tc1.Controls.Add( new LiteralControl( TitleFrom( row ) ) ) ;
					tc2.Controls.Add( new LiteralControl( row["First_Name"].ToString() ) ) ;
					//etc
 
					if( af_manager.Lock360 )
					{
						tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6 } ) ;
					}	
					else
					{
						ImageButton bt_del = AFP.CreateDeleteImageButton( string.Format( "return c('{0} {2} {1}');" , this.TitleFrom( row ), row["First_Name"], row["Last_Name"] ), strDelete ) ;
						bt_del.ID = "del" + row["ID"].ToString() + "_" + table_id ;
						bt_del.CommandArgument = row["ID"].ToString() ;
						bt_del.Command += new CommandEventHandler( DG_Delete ) ;
						tc5.Controls.Add( bt_del ) ;
 
						ImageButton img_edit = AFP.CreateImageButton( "Edit", null, "../_images/table/edit.gif", af_manager.Translate("Edit"), "" ) ;
						img_edit.ID = "img_" + row["ID"].ToString() ;
						img_edit.CommandArgument = row["ID"].ToString() ;
						img_edit.Command += new CommandEventHandler(img_edit_Command);
						tc7.Controls.Add(  img_edit ) ;
 
						tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6, tc7, tc5 } ) ;
					}
				}
				table.Rows.Add( tr ) ;
			}
 
			// BEGIN FOOTER	
			if( ! af_manager.Lock360 ) // ADDED
				if( IsNewItem  && ( RoleID == table_id ) )
				{//Partie copiée
					alternate = ! alternate ;
 
					int id = RoleID ;
					tr = new TableRow() ;
					tc1 = new TableCell() ;
					tc2 = new TableCell() ;
					tc3 = new TableCell() ;
					tc4 = new TableCell() ;
					tc5 = new TableCell() ;
					tc6 = new TableCell() ;
													tr.CssClass = string.Format( "datagrid_{0}item" , alternate ? "" : "alternate_" ) ;
 
 
					DropDownList ddl = new DropDownList() ;
					ddl.CssClass = "dropdownlist" ;
					ddl.ID = "ddl" + id ;
					ddl.Items.Add( new ListItem( ""		  , "0" ) ) ;
					ddl.Items.Add( new ListItem( titles[1], "1" ) ) ;
					ddl.Items.Add( new ListItem( titles[2], "2" ) ) ;
					ddl.Items.Add( new ListItem( titles[3], "3" ) ) ;
					ddl.SelectedIndex = TitleID ;
					ddl.SelectedIndexChanged += new EventHandler( DG_TitleID ) ;//Celui la fonctionne par contre
					ddl.Width = Unit.Percentage( 100 ) ;
 
					tc1.Controls.Add( ddl ) ;
 
 
					TextBox tx = new TextBox() ;
					tx.CssClass = "textbox" ;
					tx.ID = "first_name" + id ;
					tx.TextChanged += new EventHandler( DG_FirstName ) ; //Celui la fonctionne par contre
					tx.Width = Unit.Percentage( 100 ) ;
					tx.Text = FirstName ;
					tc2.Controls.Add( tx ) ;
 
 
					//etc...						
 
					tr.Cells.AddRange( new TableCell[] { tc1, tc2, tc3, tc4, tc6, tc5 } ) ;
 
					table.Rows.Add( tr ) ;
 
				}
				else
				{
					tr		= new TableRow() ;
					tc1		= new TableCell() ;
 
					tc1.ColumnSpan = 7 ;
					tc1.HorizontalAlign = HorizontalAlign.Center ;
					LinkButton bt_add = new LinkButton() ;
					bt_add.CssClass = "datagrid_link" ;
					bt_add.ID = "add" + table_id ;
					bt_add.Text = af_manager.Translate( "AddAssessor" ) ;
					bt_add.CommandArgument = table_id.ToString() ;
					bt_add.Command += new CommandEventHandler( Add_Assessor_Command ) ;
					tc1.Controls.Add( bt_add ) ;
					tr.Cells.Add( tc1 ) ;
					table.Rows.Add( tr ) ;
				}
			// END FOOTER
		}
		ContainsDeniedAssessors = contains_denied_assessor ;
 
	}
	finally
	{
		dr.Close() ;
		sp.Dispose() ;
	}
 
}
les fonctions de mes evenements ne plante pas (elles ne sont même pas appellées...)

Merci pour votre temps passé à décrypter le code, il n'est pas de moi, je fais du rafistolage pour de la maintenance...