回答編集履歴

1

追記

2020/09/01 01:49

投稿

退会済みユーザー
test CHANGED
@@ -15,3 +15,325 @@
15
15
 
16
16
 
17
17
  イベントハンドラの引数 RepeaterItemEventArgs の Item プロパティで RepeaterItem を取得し、その中に含まれるコントロールの中から CheckBox を探して、その ID プロパティに T クラスに含まれる文字列データを設定するようにしてみてください。
18
+
19
+
20
+
21
+ **【2020/9/1 追記】**
22
+
23
+
24
+
25
+ 上のように言っておいて、もしできなかったら何ですので検証してみました。検証に使ったコードと結果の画像を貼っておきます。上の回答で書いた List<T> 型のオブジェクトというのは下の .aspx.cs の CreateDataSource メソッドで作られる List<SampleData> で、List<T> の T クラスは SampleData になります。
26
+
27
+
28
+
29
+ **.aspx.cs**
30
+
31
+
32
+
33
+ ```
34
+
35
+ using System;
36
+
37
+ using System.Collections.Generic;
38
+
39
+ using System.Linq;
40
+
41
+ using System.Web;
42
+
43
+ using System.Web.UI;
44
+
45
+ using System.Web.UI.WebControls;
46
+
47
+
48
+
49
+ namespace WebApplication1
50
+
51
+ {
52
+
53
+ public partial class WebForm9 : System.Web.UI.Page
54
+
55
+ {
56
+
57
+ protected void Page_Load(object sender, EventArgs e)
58
+
59
+ {
60
+
61
+ if (!IsPostBack)
62
+
63
+ {
64
+
65
+ Repeater1.DataSource = CreateDataSource();
66
+
67
+ Repeater1.DataBind();
68
+
69
+ }
70
+
71
+ }
72
+
73
+
74
+
75
+ protected List<SampleData> CreateDataSource()
76
+
77
+ {
78
+
79
+ var list = new List<SampleData>();
80
+
81
+
82
+
83
+ for (int i = 0; i < 5; i++)
84
+
85
+ {
86
+
87
+ var data = new SampleData
88
+
89
+ {
90
+
91
+ Id = i,
92
+
93
+ Name = "Name-" + i,
94
+
95
+ Price = 100m * (i + 1),
96
+
97
+ CheckBoxId = "CheckBox" + i
98
+
99
+ };
100
+
101
+ list.Add(data);
102
+
103
+ }
104
+
105
+
106
+
107
+ return list;
108
+
109
+ }
110
+
111
+
112
+
113
+ protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
114
+
115
+ {
116
+
117
+ if (e.Item.ItemType == ListItemType.Item ||
118
+
119
+ e.Item.ItemType == ListItemType.AlternatingItem)
120
+
121
+ {
122
+
123
+ foreach (Control ctrl in e.Item.Controls)
124
+
125
+ {
126
+
127
+ if (ctrl is CheckBox)
128
+
129
+ {
130
+
131
+ ((CheckBox)ctrl).ID = ((SampleData)e.Item.DataItem).CheckBoxId;
132
+
133
+ break;
134
+
135
+ }
136
+
137
+ }
138
+
139
+ }
140
+
141
+ }
142
+
143
+ }
144
+
145
+
146
+
147
+ public class SampleData
148
+
149
+ {
150
+
151
+ public int Id { get; set; }
152
+
153
+
154
+
155
+ public string Name { get; set; }
156
+
157
+
158
+
159
+ public decimal Price { get; set; }
160
+
161
+
162
+
163
+ public string CheckBoxId { get; set; }
164
+
165
+ }
166
+
167
+ }
168
+
169
+ ```
170
+
171
+
172
+
173
+
174
+
175
+ **.aspx**
176
+
177
+
178
+
179
+ ```
180
+
181
+ <%@ Page Language="C#" AutoEventWireup="true"
182
+
183
+ CodeBehind="WebForm9.aspx.cs"
184
+
185
+ Inherits="WebApplication1.WebForm9" %>
186
+
187
+
188
+
189
+ <!DOCTYPE html>
190
+
191
+
192
+
193
+ <html xmlns="http://www.w3.org/1999/xhtml">
194
+
195
+ <head runat="server">
196
+
197
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
198
+
199
+ <title></title>
200
+
201
+ <style type="text/css">
202
+
203
+ table.style1
204
+
205
+ {
206
+
207
+ border-style: solid;
208
+
209
+ border-width: 2px;
210
+
211
+ border-color: Black;
212
+
213
+ text-align: center;
214
+
215
+ border-collapse: collapse;
216
+
217
+ }
218
+
219
+
220
+
221
+ table.style1 th
222
+
223
+ {
224
+
225
+ border-style: solid;
226
+
227
+ border-width: 2px 1px 2px 1px;
228
+
229
+ border-color: Black;
230
+
231
+ background-color: #6699FF;
232
+
233
+ color: #FFFFFF;
234
+
235
+ }
236
+
237
+
238
+
239
+ table.style1 td
240
+
241
+ {
242
+
243
+ border-style: solid;
244
+
245
+ border-width: 1px;
246
+
247
+ border-color: Black;
248
+
249
+ }
250
+
251
+ </style>
252
+
253
+ </head>
254
+
255
+ <body>
256
+
257
+ <form id="form1" runat="server">
258
+
259
+ <div>
260
+
261
+ <asp:Repeater ID="Repeater1" runat="server"
262
+
263
+ OnItemDataBound="Repeater1_ItemDataBound">
264
+
265
+ <HeaderTemplate>
266
+
267
+ <table class="style1">
268
+
269
+ <tr>
270
+
271
+ <th>ID</th>
272
+
273
+ <th>Name</td>
274
+
275
+ <th>Price</th>
276
+
277
+ <th>Check</th>
278
+
279
+ </tr>
280
+
281
+ </HeaderTemplate>
282
+
283
+
284
+
285
+ <ItemTemplate>
286
+
287
+ <tr>
288
+
289
+ <td><%# Eval("ID")%></td>
290
+
291
+ <td><%# Eval("Name")%></td>
292
+
293
+ <td><%# Eval("Price")%></td>
294
+
295
+ <td>
296
+
297
+ <asp:CheckBox runat="server" ClientIDMode="Static" />
298
+
299
+ </td>
300
+
301
+ </tr>
302
+
303
+
304
+
305
+ </ItemTemplate>
306
+
307
+ <FooterTemplate>
308
+
309
+ </table>
310
+
311
+ </FooterTemplate>
312
+
313
+ </asp:Repeater>
314
+
315
+ </div>
316
+
317
+ </form>
318
+
319
+ </body>
320
+
321
+ </html>
322
+
323
+ ```
324
+
325
+
326
+
327
+ **結果**
328
+
329
+
330
+
331
+ ![イメージ説明](284edefc3c752a1dcb60f08f40e9d88d.jpeg)
332
+
333
+
334
+
335
+ **html**
336
+
337
+
338
+
339
+ ![イメージ説明](9f70670c2eea38e0bfeeb6e04510220d.jpeg)