2014-07-11 65 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