如何读取我的datalist中的复选框值和控件ID?

时间:2014-05-12 22:22:24

标签: asp.net vb.net templates datalist

作为一种相册的一部分,我有一个数据列表,可以显示一堆图片以及一些元数据。一切都很好。 我想要包含一个标记单个图片以供删除的复选框。检查了某些方框后,点击“删除”按钮。按钮将触发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>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <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>

1 个答案:

答案 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