一个多选题限制最多只能选N个,CheckBoxList 如何判断

 一个多选题限制最多只能选N个,CheckBoxList 如何判断  

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>    
    <div>
        <asp:DataList ID="DataList1" runat="server" RepeatLayout="Flow">
        <ItemTemplate>
            <%#Eval("OrderID") %>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" RenderMode="Inline" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSource='<%# GetOrderDetails(Convert.ToInt32(Eval("OrderID"))) %>' DataTextField="UnitPrice" DataValueField="ProductID" RepeatLayout="Flow" RepeatDirection="Horizontal" AutoPostBack="True" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">
                    </asp:CheckBoxList>                
                </ContentTemplate>
            </asp:UpdatePanel>
        </ItemTemplate>
        </asp:DataList>
        <asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="False" RenderMode="Inline" UpdateMode="Conditional">
        <ContentTemplate>
        <asp:Label ID="Label1" runat="server"></asp:Label>        
        </ContentTemplate>
        </asp:UpdatePanel>
     </div>
    </form>
</body>
</html>


private void BindDataList()
{
    SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=Northwind");
    SqlDataAdapter da = new SqlDataAdapter("select top 10 orderid, CustomerID, OrderDate from Orders", cn);
    DataSet ds = new DataSet();
    cn.Open();
    da.Fill(ds);
    cn.Close();
    DataList1.DataSource = ds.Tables[0].DefaultView;
    DataList1.DataBind();
}

protected DataTable GetOrderDetails(int orderID)
{
    SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=Northwind");
    SqlDataAdapter da = new SqlDataAdapter("select ProductID, UnitPrice from [Order Details] where orderid = @orderid", cn);
    da.SelectCommand.Parameters.AddWithValue("@orderid", orderID);
    DataSet ds = new DataSet();
    cn.Open();
    da.Fill(ds);
    cn.Close();
    return ds.Tables[0];
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindDataList();
    }
}

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
    CheckBoxList chk = sender as CheckBoxList;
    int count = 0;
    foreach (ListItem li in chk.Items)
    {
        if (li.Selected)
        {
            count++;
            if (count >= 3)
            {
                Label1.Text = "Wrong";
                UpdatePanel2.Update();
                break;
            }
            else
            {
                Label1.Text = string.Empty;
                UpdatePanel2.Update();
            }
        }
    }
    ((UpdatePanel)((DataListItem)chk.NamingContainer).FindControl("UpdatePanel1")).Update();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值