0

我在获取 datalist 中的所有值时遇到问题

这是问题所在:

我有从数据库中的表动态填充的datalist,aspx页面是批量订单页面,所以datalist中有很多项目,我希望用户能够一次选择多个订单 模式并选择一个按钮 这称为签出,问题是我如何循环遍历所有复选框和文本框并获取值。任何想法编码都会有帮助,因为我还没有编码。

这是我的 aspx 页面:

 <asp:DataList ID="DataList1" runat="server" BackColor="White" BorderColor="#CCCCCC" 
        BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyField="Id" 
        DataSourceID="SqlDataSource1" GridLines="Both">
    <FooterStyle BackColor="White" ForeColor="#000066" />
    <ItemStyle ForeColor="#000066" />
    <SelectedItemStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
    <FooterTemplate>
        <asp:Button ID="btnNext" runat="server" Text="CheckOut" 
            onclick="btnNext_Click" />
    </FooterTemplate>
    <ItemTemplate>
        <asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
        <br />
        <asp:Image ID="Image1" ImageUrl='<%# Eval("PictureUrlMedium") %>' runat="server" />

        <br />
         <asp:Label ID="DescriptionLabel" runat="server" 
            Text='<%# Eval("Description") %>' />
        <br />
        <br />
        <asp:Table ID="Table1" runat="server">
        <asp:TableRow>
        <asp:TableCell><asp:CheckBox ID="chkSmall" runat="server" Enabled="true" Width="20px"/>

小的

中等的

大的

超大

2XL大

3XL大

4XL大

5X大


    </ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
  ConnectionString="<%$ ConnectionStrings:LocalSqlServer %>"  

    SelectCommand="SELECT [Id], [Title], [Description], [Price], [CategoryId], [PictureUrlSmall], [PictureUrlMedium], [PictureUrlLarge], [Deleted] FROM [Product]"></asp:SqlDataSource>
4

2 回答 2

1

您可以通过循环点击事件中的数据列表项来实现此目的:

foreach(DataListItem item in YourDataList.Items){
    CheckBox chkSmall = (CheckBox)item.FindControl("chkSmall");
    chkSmall.Checked gives you the value
}
于 2009-10-13T15:06:58.057 回答
0

在回发时,循环遍历数据列表的项目并使用 FindControl 获取复选框状态。您可能希望在 datalist 项中添加一些内容以识别与复选框对应的实际实体。

于 2009-10-13T15:08:18.817 回答