如何在提交按钮上将选定数据从datalist显示到转发器?

时间:2018-02-18 11:57:27

标签: asp.net .net web

我有一个datalist控件,它有一些记录,它还在datalist的itemtemplate中有一个名为cb1的子控件复选框。

我想要做的就是点击页面上的提交按钮,所有已选中的记录都应显示在下面的转发器中。我设法将已检查记录的item.index值放入数组中。但我不知道如何将所选数据显示到转发器中。

这是页面的图像。 Image

我的代码

private void list_bind()
{
    SqlDataAdapter adp = new SqlDataAdapter("select * from tbbook", ConfigurationManager.ConnectionStrings["cs"].ConnectionString);
    DataSet ds = new DataSet();
    adp.Fill(ds);
    DataList1.DataSource = ds;
    DataList1.DataBind();
    Repeater1.DataSource = ds;
    Repeater1.DataBind();
}

protected void Button1_Click(object sender, EventArgs e)
{
    string a = null;
    foreach (DataListItem item in DataList1.Items)
    {
        CheckBox chk = (CheckBox)item.FindControl("cb1");
        if(chk.Checked)
        {
             a = Convert.ToString(DataList1.DataKeys[item.ItemIndex]);
        }
    }
}

}

Html代码

<body>
<form id="form1" runat="server">
    <asp:DataList ID="DataList1" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" GridLines="Both" Height="206px" RepeatColumns="3" OnSelectedIndexChanged="DataList1_SelectedIndexChanged" DataKeyField="bookid">
         <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
         <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
         <ItemStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
         <ItemTemplate>
             <b>Title: </b><%#Eval("booktit")%><br />
             <b>Author: </b><%#Eval("bookaut") %><br />
             <b>Pub: </b><%#Eval("bookpub") %><br />
             <b>Price: </b><%#Eval("bookprc") %><br />
             <asp:CheckBox ID="cb1" Text="Buy" runat="server" />
         </ItemTemplate>
         <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
    </asp:DataList>
    <br />
    <br />
    <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" />
    <br />
    <br />
    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            <b>Title: </b><%#Eval("booktit")%><br />
             <b>Author: </b><%#Eval("bookaut") %><br />
             <b>Pub: </b><%#Eval("bookpub") %><br />
             <b>Price: </b><%#Eval("bookprc") %><br />
        </ItemTemplate>
    </asp:Repeater>
</form>

1 个答案:

答案 0 :(得分:0)

将DataListItem放入一个新数组中,让它称之为复制和放大删除所有未经检查的索引,然后将其与转发器绑定。