【发布时间】: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