2014-07-11 5 views
0

ASP.Net에 checkboxList를 만들었습니다. 각 확인란은 값과 연결되어 있습니다. 내 문제는 SQL Server 데이터베이스와 계획이라는 테이블이 있는데이 테이블에는 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 = 새 SqlConnection ("데이터 원본 = localHost; 초기 카탈로그 = aspData; 통합 보안 = True"); conn.Open(); SqlCommand cmd = 새 SqlCommand ("INSERT INTO deductible (planID) VALUES ('예')", conn); cmd.ExecuteNonQuery(); conn.Close(); } – user3345212

+0

@ user3345212 음, 작동 했습니까? – mason