【问题标题】:Which object I can pass into JSON in asp.net?我可以在 asp.net 中将哪个对象传递给 JSON?
【发布时间】:2016-12-22 08:30:52
【问题描述】:

我已经创建了列表框。左侧列表框包含列表项,右侧列表框在服务器端没有任何内容。

<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 中创建一个映射变量并将该变量传递给 JSON,然后将这些值添加到服务器端的右列表框中。

在这里,我尝试获取所有文本和值并将其放入一个变量中。但我不明白它是如何工作的以及我应该在 json 中传递哪个变量。

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

当我尝试这个alert("Values =" + values); 时,我变得不确定。那么我应该在 JSON 中传递哪个变量

谢谢

【问题讨论】:

  • @Div 仍然与undefined 相同。 var options = $('#lstRight option'); var values = $.map(options, function (option) { //alert("Text = " + option.text + " Value = " + option.value); alert("Values =" + JSON.stringify(values)); });

标签: c# jquery asp.net json listbox


【解决方案1】:

使用下面的代码获取Listbox的值和文本。

//Define javascript array

var arr = new Array;

$("#lstRight > option").each(function () {
       arr.push({ "Text" : $(this).text() , "Value" : $(this).val() });
});

//convert this array into json using JSON.stringify function

JSON.stringify(arr);

在浏览器中呈现时,还要检查 asp.net Listbox 控件的客户端 ID。

【讨论】:

  • 我想你不明白我的问题。我已经得到了值和文本。我想将所有文本和值存储在一个数组中,例如(键,值)。然后我想将该数组传递给 json 并将这些键和值添加到服务器端的右侧列表框项中。明白了吗?
猜你喜欢
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 2020-07-29
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多