2014-07-11 68 views
0

我在ASP.Net中创建了一个checkboxList,每个复选框都与一个值相关联。我的问题是,我有一个SQL Server数据库和一个名为Plans的表,这个表包含一个名为DeductiblePlans的列,当有人检查0计划时,它的值(1)应该插入到数据库中,如果选择了两个计划将插入两条记录,依此类推。ASP.Net CheckBoxList值插入到数据库

我的背景是Windows应用程序,我真的不知道如何获取从ASPX文件中选择的值并将其插入到数据库中。什么是最有效的方法呢?如果我能看到一个例子,我将不胜感激。

Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script src="scripts/jquery-1.4.3.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 

     function btnShow_onclick() { 
      $("#spnLabels").text(""); 
      $("#spnValues").text(""); 

      var labels = ""; 
      var values = ""; 

      $("#<%= CheckBoxList1.ClientID %> input:checkbox:checked").each(function() { 
       var label = $('label[for=' + this.id + ']').html(); 
       var value = $(this).parent().attr('hiddenValue'); 

       labels += label + ""; 
       values += value + ", "; 

      }); 

      labels = labels.substring(0, labels.length); 
      values = values.substring(0, values.length - 2); 

      $("#spnLabels").text(labels); 
      $("#spnValues").text(values); 
     } 

    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal" Width="870px" Height="139px"> 
      <asp:ListItem Text="$0 Plan" Value="1" /> 
      <asp:ListItem Text="$100 Plan" Value="2" /> 
      <asp:ListItem Text="$150 Plan" Value="3" /> 
      <asp:ListItem Text="$250 Plan" Value="4" /> 
      <asp:ListItem Text="$500 Plan" Value="5" /> 
      <asp:ListItem Text="$750 Plan" Value="6" /> 
      <asp:ListItem Text="$1000 Plan" Value="7" /> 
      <asp:ListItem Text="$1500 Plan" Value="8" /> 
      <asp:ListItem Text="$2000 Plan" Value="9" /> 
      <asp:ListItem Text="$2500 Plan" Value="10" /> 
      <asp:ListItem Text="$3000 Plan" Value="11" /> 
      <asp:ListItem Text="$4000 Plan" Value="12" /> 
     </asp:CheckBoxList> 
     <br /> 

     <asp:LinkButton ID="lbAll" runat="server" OnClick="lbAll_Click">Select All</asp:LinkButton> 
     <br /> 
     <br /> 

     <input id="btnShow" type="button" value="Show Selected Items" onclick="return btnShow_onclick()" /> 
     <br /> 
     <br /> 
     <br /> 
     <span id="spnLabels"></span> 
     <br /> 
     <br /> 
     <span id="spnValues"></span> 
     <br /> 
    </form> 
</body> 
</html> 

Default.ASPX.CS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     foreach (ListItem item in CheckBoxList1.Items) 
     { 
      item.Attributes.Add("hiddenValue", item.Value); 
     }   
    } 
    protected void lbAll_Click(object sender, EventArgs e) 
    { 
     foreach (ListItem li in CheckBoxList1.Items) 
     { 
      li.Selected = true; 
     } 
    } 
} 
+0

为什么要添加隐藏值? – mason

回答

1
protected void SubmitBtn_Click(object sender, EventArgs e) 
{ 
    foreach(ListItem li in CheckBoxList1.items) 
    { 
     if(li.Selected) 
     { 
      //insert to database, the value is in item.Value 
     } 
    } 
} 

只是循环并看看有什么选择。它与Win Forms没有什么不同。

+0

请给我你的反馈: – user3345212

+0

这里是我所做的:if(li.Selected) { SqlConnection conn = new SqlConnection(“Data Source = localHost; Initial Catalog = aspData; Integrated Security = True”); conn.Open(); SqlCommand cmd = new SqlCommand(“INSERT INTO deductible(planID)VALUES('yes')”,conn); cmd.ExecuteNonQuery(); conn.Close(); } – user3345212

+0

@ user3345212那么,它的工作? – mason