2016-07-11 20 views
0

ドロップダウンリスト項目を使用してデータベースに値を挿入するにはどうしたらいいですか?アイテムを選択するとサブミットボタンを押すと数値がasp.net vb.netコードを使用してSQLサーバーデータベースに保存され、問題は、それは常に私は1,2,3,4を選択した場合でも、sqlserverデータベースに0の値を保存する、問題はJavaScriptです、私が望む値を選択することができますし、問題はありません、しかし、私は値を無効にする必要がある場合は、データベースに重複を避けるために、誰かが私はJavaScriptを把握するのに役立つことができます、私はドロップダウンリストがデフォルトに戻っていることを確認することができます値0を設定してリセットし、ドロップダウンリストから選択した値を保存しません...ドロップダウンリスト有効無効値

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"   
    Inherits="_Default" Debug="true"%> 

    <!DOCTYPE html> 

    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 

    <title></title> 
    </head> 
    <body> 

    <form id="form1" runat="server"> 
     <div> 
      <asp:DropDownList ID = "frst" runat="server" AutoPostBack="true"> 
      <asp:ListItem value="0">Select</asp:ListItem> 
      <asp:ListItem value="1">1</asp:ListItem> 
      <asp:ListItem value="2">2</asp:ListItem> 
      <asp:ListItem value="3">3</asp:ListItem> 
      <asp:ListItem value="4">4</asp:ListItem>   
      </asp:DropDownList> 
      <asp:DropDownList ID = "secnd" runat="server"> 
     <asp:ListItem value="0">Select</asp:ListItem> 
      <asp:ListItem value="1">1</asp:ListItem> 
      <asp:ListItem value="2">2</asp:ListItem> 
      <asp:ListItem value="3">3</asp:ListItem> 
      <asp:ListItem value="4">4</asp:ListItem>   
      </asp:DropDownList>  

       <asp:Button ID="btnSave" runat="server" Text="Save"  
     OnClick="btnSave_Click" /> 
     <asp:Label ID="lblmsg" runat="server"></asp:Label> 

    </div> 


    <script type="text/javascript"> 
    var ids = ['frst', 'secnd']; 

    NodeList.prototype.forEach = HTMLCollection.prototype.forEach =  
     Array.prototype.forEach; 
    var selected = []; 
    ids = makeid(ids); 
    var opts = find(ids); 
    updateS(opts); 
    massdisabler(opts); 
    assignFunc(ids, disabler); 

    function assignFunc(i, func) { //done 
    var x; 
    for (x = 0; x < i.length; ++x) { 
    i[x].onchange = function() { 
     func(this); 
    }; 
    } 
    } 

    function disabler(i) { 
    console.log(selected); 
    updateS(opts); 
    massdisabler(opts); 
    } 

    function makeid(i) { //done 
    var o = []; 
    i.forEach(function (v) { 
    o.push(document.getElementById(v)) 
    }); 
    return o; 
    } 

    function find(ids) { //done 
    var o = {}; 
    for (var i = 0; i < ids.length; ++i) { 
    o[i] = {}; 
    ids[i].children.forEach(function (v, n) { 
     o[i][n] = v; 
    }); 
    } 

    return o; 
    } 

    function massdisabler(op) { //done 
    var y = Object.keys(op).length; 
    for (var x = 0; x < y; x++) { 
    var t = 0, 
     l = Object.keys(opts[x]).length; 
    for (var v = 0; v < l; v++) { 
     t = op[x][v]; 

     if (selected.some(function (k) { 
      if (t.value == k) { 
       return true; 
     } 
     })) { 
      t.setAttribute("disabled", "disabled"); 
     } else { 
      t.removeAttribute("disabled"); 
     } 
     } 
    } 
    } 

    function updateS(op) { //done 
    var s = [], 
    y = Object.keys(op).length; 

    for (var x = 0; x < y; x++) { 

    var t = 0, 
     l = Object.keys(opts[x]).length; 

    for (var v = 0; v < l; v++) { 
     t = op[x][v]; 
     var yn = s.some(function (k) { 
      if (t.value == k) { 
       return true; 
      } 
     }); 
     if (t.selected && (!yn)) s.push(t.value); 
     } 
    } 
    selected = s; 
    } 
    </script> 

    </form> 

    </body> 
    </html> 

私は自分のコードを修正しようとしているhelpme誰かが私は初心者だdownvoteしないでくださいすることができますおかげで、このコード全体はImは数週間のためにこれらをやって私を助けてくださいされています

Protected Sub btnSave_Click(sender As Object, e As EventArgs) 
    Dim cs As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString 
    Dim cn As SqlConnection = New SqlConnection(cs) 
    Dim cmd As SqlCommand = New SqlCommand() 
    cmd.Connection = cn 
    cmd.CommandType = CommandType.Text 
    cmd.CommandText = "insert into Names values(@FirstValue,@SecondValue)" 
    cmd.Parameters.Clear() 
    cmd.Parameters.AddWithValue("@FirstValue", frst.SelectedItem.Value) 
    cmd.Parameters.AddWithValue("@SecondValue", secnd.SelectedItem.Value) 
    If cn.State = ConnectionState.Closed Then 
     cn.Open() 
    End If 
    cmd.ExecuteNonQuery() 
    cn.Close() 
    lblmsg.Text = "Data entered successfully!!!" 

End Sub 
+0

HiddenFieldを配置するには、選択した値をHiddenFieldにドロップします(JSコードを実行する前に)。サーバー側では、HiddenFieldから値を取得します。私はこれが助けて欲しい! – Sami

+0

無効になっているコントロールと選択されていないチェックボックス/ラジオボタンは、postメソッドまたはgetメソッドでサーバーに送信されません。また、があります - これは問題を引き起こす可能性がありますか? – jeff

+0

こんにちはあなたはそれを試してみましたか?問題は、私はJavaScriptを削除した場合、私はドロップダウンで選択した値を保存し、データベースに保存することができますが、私は別の値を選択した場合でも、私は再びjavascriptを押してボタンを押して、値0を保存します。ありがとう – gunter

答えて

0

viewstateを取りますまたはhiddenfieldとし、いずれかにdropdownlistSelectedValueを割り当てます。

問題が解決します。

+0

あなたは感謝していない場合、ドロップダウンリストを使用してそれを行う方法のサンプルsolutinを与えることができますサー、Vahid、私は助けが必要です – gunter

関連する問題