2016-12-22 7 views
1

私はリストボックスを作成しました。左のリストボックスにはリストアイテムが含まれ、右のリストボックスにはサーバーサイドには何もありません。asp.netでJSONに渡すことができるオブジェクトはどれですか?

<div class="row" style="padding-top:10px;"> 
    <div class="col-lg-3"> 
     <asp:ListBox ID="lstLeft" class="form-control" runat="server" SelectionMode="Multiple" Height="220px"> 
     <asp:ListItem Value="transactions.storeid as StoreID">StoreID</asp:ListItem> 
     <asp:ListItem Value="YEAR(transactions.Time) Year">Year</asp:ListItem> 
     <asp:ListItem Value="MONTH(transactions.Time) Month">Month</asp:ListItem> 
     <asp:ListItem Value="transactionsEntry.TransactionNumber">TransactionNumber</asp:ListItem> 
     <asp:ListItem Value="transactionsEntry.Quantity">Quantity</asp:ListItem> 
     <asp:ListItem Value="items.ItemLookupCode">ItemLookupCode</asp:ListItem> 
     <asp:ListItem Value="CONVERT(varchar, CAST(transactionsEntry.Price AS money), 1)*transactionsEntry.Quantity ExtendedPrice">ExtendedPrice</asp:ListItem> 
     <asp:ListItem Value="departments.Name as DepartmentName">DepartmentName</asp:ListItem> 
     <asp:ListItem Value="categories.Name as CategoryName">CategoryName</asp:ListItem> 
     <asp:ListItem Value="items.SubDescription1">SubDescription1</asp:ListItem> 
     <asp:ListItem Value="suppliers.SupplierName">SupplierName</asp:ListItem> 
     <asp:ListItem Value="suppliers.Code">Code</asp:ListItem> 
     </asp:ListBox> 
    </div> 
    <div class="col-lg-1"> 
     <input type="button" id="left" value="<<" /> 
     <input type="button" id="right" value=">>" /> 
    </div> 
     <div class="col-lg-3"> 
     <asp:ListBox ID="lstRight" runat="server" SelectionMode="Multiple" Width="100%" Height="220"></asp:ListBox> 
    </div> 
</div> 

実行時に、Jqueryを使用してボタンをクリックして、リスト項目を左リストボックスから右リストボックスに移動します。

$(function() { 

      $("#left").bind("click", function() { 
       var options = $("[id*=lstRight] option:selected"); 
       for (var i = 0; i < options.length; i++) { 
        var opt = $(options[i]).clone(); 
        $(options[i]).remove(); 
        $("[id*=lstLeft]").append(opt); 
       } 
      }); 
      $("#right").bind("click", function() { 
       var options = $("[id*=lstLeft] option:selected"); 

       for (var i = 0; i < options.length; i++) { 
        var opt = $(options[i]).clone(); 

        $(options[i]).remove(); 
        $("[id*=lstRight]").append(opt); 
       } 

      }); 

ここで、JSONを使用して右リストボックス内で移動するリストボックスアイテムを追加します。 jqueryで1つのマップ変数を作成し、その変数をJSONに渡して、その値をサーバー側の右リストボックスに追加します。

ここでは、すべてのテキストと値を取得して1つの変数に入れようとしました。しかし、私はそれがどのように動作しているのか、どの変数をjsonに渡すべきか理解していない。

var options = $('#lstRight option'); 
var values = $.map(options, function (option) { 
    alert("Text = " + option.text + " Value = " + option.value); 
    //alert("Values =" + values); 
}); 

私は未定義取得しています。この1 alert("Values =" + values);を試してみてください。だから、どの変数私は、JSON

おかげ

+0

@Divまだ「未定義」と同じです。 'var options = $( '#lstRightオプション'); var values = $ .map(// alert( "Text =" + option.text + "Value =" + option.value); alert( "Values =" + JSON.stringify (値)); }); ' –

答えて

0

を渡す必要があるリストボックスの値やテキストを取得するには、以下のコードを使用してください。

ブラウザでレンダリングすると、asp.netリストボックスコントロールのクライアントサイドIDも確認します。

+0

あなたは私の質問を理解していないと思います。私はすでに値とテキストを持っています。私はすべてのテキストと値を(キー、値)のような1つの配列に格納したいと思います。その配列をjsonに渡して、そのキーと値をサーバー側の右リストアイテムに追加したいとします。わかる? –

関連する問題