Reputation:
I want to move selected listbox items to another listbox without reloading the whole page.
In my scenario, I used integer values and want to send selected values to another list box and vice-versa.
Can anyone please guide me how to do this.
Class code
public class NumberClass
{
public IEnumerable<SelectListItem> leftnumbers { get; set; }
public IEnumerable<int> leftSelectednumbers { get; set; }
public IEnumerable<SelectListItem> rightnumbers { get; set; }
public IEnumerable<int> rightSelectednumbers { get; set; }
}
Controller code
[HttpGet]
public ActionResult Index()
{
List<SelectListItem> items = new List<SelectListItem>();
for (int i = 1; i <= 20; i++)
{
SelectListItem selectList = new SelectListItem()
{
Text = i.ToString(),
Value = i.ToString()
};
items.Add(selectList);
}
NumberClass num = new NumberClass()
{
leftnumbers = items,
rightnumbers = null
};
return View(num);
}
[HttpPost]
public string Index(IEnumerable<int> selectedvalue)
{
if (selectedvalue == null)
{
return "you have not selected";
}
else
{
//
return;
}
}
Index.cshtml
@using (Html.BeginForm())
{
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.leftSelectednumbers, Model.leftnumbers, new { size = 20, @class = "listBox" })
<br />
<input type="submit" value="move left" />
</div>
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.leftSelectednumbers, new List<SelectListItem>(), new { size = 20, @class = "listBox" })
<br />
<input type="submit" value="move right" />
</div>
}
Upvotes: 1
Views: 1013
Reputation: 18975
I tried to use jQuery
for your requirement handle click event and append selected to right part.
With this you should use javascript
instead of backend code as ADyson suggestion.
@model TestMVC.Controllers.NumberClass
@using (Html.BeginForm())
{
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.leftSelectednumbers, Model.leftnumbers, new { size = 20, @class = "listBox" })
<br />
<input type="button" id="moveLeft" value="move left" />
</div>
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.rightSelectednumbers, new List<SelectListItem>(), new { size = 20, @class = "listBox" })
<br />
<input type="button" value="move right" />
</div>
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$('#moveLeft').click(function () {
var leftselected = $('#leftSelectednumbers').val();
$.each(leftselected, function (key, value) {
$('#rightSelectednumbers').append($("<option></option>").attr("value", value).text(value));
});
})
</script>
Upvotes: 0