0

チェックボックスリストとリストビューがあります。チェックボックスリストから選択した値をリストビューに表示したくありません。例の場合。3つのアイテムを選択して[OK]ボタンをクリックすると、3つではなく4つのアイテムを選択して4つのアイテムを表示するように変更すると、この3つのアイテムがリストビューに表示されます。

私はこれが初めてなので、助けてください。

ありがとう

4

1 に答える 1

1

このようにしてみてください

HTML デザイナー ページ

<asp:CheckBoxList   
            ID="CheckBoxList1"  
            runat="server"  
            RepeatColumns="2"  
            >  
            <asp:ListItem>SqlDataSource</asp:ListItem>  
            <asp:ListItem>XmlDataSource</asp:ListItem>  
            <asp:ListItem>AccessDataSource</asp:ListItem>  
        </asp:CheckBoxList> 

        <asp:Button   
            ID="Button1"   
            runat="server"   
            Text="Add Item"   

            Font-Bold="true"  
            ForeColor="SteelBlue" onclick="Button1_Click"  
            />  

            <asp:ListView ID="listview1" runat="server">
            <LayoutTemplate>
    <table runat="server" id="table1" >
      <tr runat="server" id="itemPlaceholder" ></tr>
    </table>
  </LayoutTemplate>
  <ItemTemplate>
    <tr id="Tr1" runat="server">
      <td id="Td1" runat="server">
        <%-- Data-bound content. --%>
        <asp:Label ID="NameLabel" runat="server"
          Text='<%#Eval("Name") %>' />
      </td>
    </tr>
  </ItemTemplate>
            </asp:ListView>

コードビハインド

protected void Button1_Click(object sender, EventArgs e)
    {
        List<ListItem> Citems = CheckBoxList1.Items.Cast<ListItem>().Where(n => n.Selected).ToList();
        DataSet dt = new DataSet();
        DataTable table1 = new DataTable();
        table1.Columns.Add("Name");


        if (Citems.Count() != 0)
        {

            for(int i=0;i<Citems.Count();i++)
            {
                table1.Rows.Add(Citems[i].Text);

            }
            dt.Tables.Add(table1);
            listview1.DataSource = dt;
            listview1.DataBind();
        }
    }
于 2013-09-17T08:57:43.123 に答える