作为一种相册的一部分,我有一个数据列表,可以显示一堆图片以及一些元数据。一切都很好。 我想要包含一个标记单个图片以供删除的复选框。检查了某些方框后,点击“删除”按钮。按钮将触发SQL删除命令。
问题是我不知道如何识别勾选的复选框。 我正在考虑某种循环程序,它将识别哪些cb被勾选,然后读取标签' picID1'包含在SQL删除命令中的文本值。
如何为cb和标签分配唯一身份证?
这是标记 -
<asp:DataList ID="DataList1" runat="Server" DataSourceID="SqlDataSource1" RepeatColumns="3"
RepeatDirection="Horizontal" BorderWidth="0px" CellPadding="3">
<ItemStyle CssClass="item" />
<ItemTemplate>
<table align="left" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
</td>
<td>
<a href='viewphoto_Detailed.aspx?imgID=<%# Eval("imgID") %>'>
<asp:Image ID="picAlbum" runat="server" AlternateText="missing image" ImageUrl='<%# "ShowImage.ashx?id=" & Eval("imgID") %>' Width="300" />
</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td nowrap="nowrap" width="100" valign="top">
<a class="photoData">
Entry# <asp:Label ID="picID1" runat="server" Text='<%#Server.HtmlEncode(Eval("imgID").ToString())%>'></asp:Label> <asp:CheckBox ID="CheckBox1" runat="server" /><br />
Filename submitted: <%#Getname(Server.HtmlEncode(Eval("imgFileNameSubmitted").ToString()))%><br />
Filename saved: <%#Getname(Server.HtmlEncode(Eval("imgFileNameSaved").ToString()))%><br />
Location: <%#Getname(Server.HtmlEncode(Eval("imgWhere").ToString()))%>
</a>
</td>
<td>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
答案 0 :(得分:0)
今天早上有很多咖啡,还有一股鲜血涌向头部,我想到了这一点。 似乎工作正常......
Dim strPicIDs As String = ""
For Each item As DataListItem In DataList1.Items
If item.ItemType = ListItemType.Item OrElse item.ItemType = ListItemType.AlternatingItem Then
Dim DeleteCheckBox As CheckBox = DirectCast(item.FindControl("DeleteCheckBox"), CheckBox)
Dim picID As Label = DirectCast(item.FindControl("picID"), Label)
If DeleteCheckBox IsNot Nothing Then
If DeleteCheckBox.Checked = True Then
strPicIDs += picID.Text + ","
End If
End If
End If
Next