2016-02-12 95 views
1

我有一个列表视图,里面有一个复选框。我想要发生的事情是 当我点击过程按钮,检查项目 的值传递给标签。使用复选框选择列表视图项目

Ex。输出:1,2,3,4,5,6,7,8,9

这是我的HTML代码。

<asp:ListView ID="ListView1" runat="server" DataKeyNames="CalendarDays" DataSourceID="sdsDays" GroupItemCount="7"> 


       <AlternatingItemTemplate> 
        <td> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </td> 
        <td runat="server" style=""><%--CalendarDays:--%> 
         <asp:Label ID="CalendarDaysLabel" runat="server" Text='<%# Eval("CalendarDays") %>' /> 
         <br /> 
        </td> 
       </AlternatingItemTemplate> 
       <EditItemTemplate> 
        <td> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </td> 
        <td runat="server" style=""><%--CalendarDays:--%> 
         <asp:Label ID="CalendarDaysLabel1" runat="server" Text='<%# Eval("CalendarDays") %>' /> 
         <br /> 
         <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /> 
         <br /> 
         <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" /> 
         <br /> 
        </td> 
       </EditItemTemplate> 
       <EmptyDataTemplate> 
        <table runat="server" style=""> 
         <tr> 
          <td>No data was returned.</td> 
         </tr> 
        </table> 
       </EmptyDataTemplate> 
       <EmptyItemTemplate> 
        <td runat="server" /> 
       </EmptyItemTemplate> 
       <GroupTemplate> 
        <tr id="itemPlaceholderContainer" runat="server"> 
         <td id="itemPlaceholder" runat="server"></td> 
        </tr> 
       </GroupTemplate> 
       <InsertItemTemplate> 
        <td> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </td> 
        <td runat="server" style=""><%--CalendarDays:--%> 
         <asp:TextBox ID="CalendarDaysTextBox" runat="server" Text='<%# Bind("CalendarDays") %>' /> 
         <br /> 
         <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" /> 
         <br /> 
         <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" /> 
         <br /> 
        </td> 
       </InsertItemTemplate> 
       <ItemTemplate> 
        <td> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </td> 
        <td runat="server" style=""><%--CalendarDays:--%> 
         <asp:Label ID="CalendarDaysLabel" runat="server" Text='<%# Eval("CalendarDays") %>' /> 
         <br /> 
        </td> 
       </ItemTemplate> 
       <LayoutTemplate> 
        <table runat="server"> 
         <tr runat="server"> 
          <td runat="server"> 
           <table id="groupPlaceholderContainer" runat="server" border="0" style=""> 
            <tr id="groupPlaceholder" runat="server"> 
            </tr> 
           </table> 
          </td> 
         </tr> 
         <tr runat="server"> 
          <td runat="server" style=""></td> 
         </tr> 
        </table> 
       </LayoutTemplate> 
       <SelectedItemTemplate> 
        <td> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </td> 
        <td runat="server" style=""><%--CalendarDays:--%> 
         <asp:Label ID="CalendarDaysLabel" runat="server" Text='<%# Eval("CalendarDays") %>' /> 
         <br /> 
        </td> 
       </SelectedItemTemplate> 


     </asp:ListView> 

我试过在GridView

这是我的代码

  string valueListDate = string.Empty; 
     int countDate = 0; 


     foreach (GridViewRow row in grdDay.Rows) 
     { 
      if ((row.FindControl("chkDate") as CheckBox).Checked) 
      { 
       string Dates = row.Cells[1].Text; 
      valueListDate += "" + Dates + ","; 
       countDate++; 
      } 
     } 


     if (countDate == 0) 
     { 
      System.Threading.Thread.Sleep(500); 
     } 

     else if (countDate == 1) 
     { 
      System.Threading.Thread.Sleep(500); 
      valueListDate = valueListDate.Substring(0, valueListDate.Length - 1); 

      lbldates.Text = valueListDate; 
     } 

     else 
     { 

      valueListDate = valueListDate.Substring(0, valueListDate.Length - 1); 
      lbldates.Text = valueListDate; 

     } 

     txtDate.Text = ddlSelectMonth.SelectedValue + " " + lbldates.Text + " " + DateTime.Now.Year.ToString(); 
     ModalPopupExtenderAFindings.Show(); 

它的工作,但我喜欢用一个列表视图,因为 我想选择是这样LISTVIEW 这gridview无法做到。

请大家帮忙。

+0

请别人更容易支持您通过指定更多的细节,例如你在ASP.NET中使用哪个框架? WebForms或MVC(添加适当的标签)。 HTML的外观如何?你想在哪里进行处理?在服务器上或在JavaScript中的客户端?你试过什么了?添加代码的相关部分。 – Markus

+0

嘿,你可以使用复选框列表,你可以指定重复的方向为水平 –

回答

1

下面的代码片段将帮助你..

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="3" RepeatLayout="Table"> 
    </asp:CheckBoxList> 

在代码隐藏,你可以做到这一点

protected void btnProcess_click(object sender, EventArgs e) 
     { 
      foreach (ListItem item in CheckBoxList1.Items) 
      { 
       if (item.Selected) 
       { 
        lblDisplay.Text += item.Text + ","; 
       } 
      } 
     } 
+0

谢谢你的工作! :D – KevinNEWBIE

+0

欢迎您! –