我如何獲得所有ListBox
值(不僅是選定的項目)在asp.net mvc2
項目提交行動。如何獲取所有列表框項目(不僅是選定的項目)在mvc提交行動
我使用Ajax的形式像
Ajax.BeginForm("actionname", new....)
我會在只有當我選擇列表框中的所有項目的列表框中的所有項目。
是否有無法獲得所有項目,不僅在動作頁面的lisbox中選擇了項目?
我如何獲得所有ListBox
值(不僅是選定的項目)在asp.net mvc2
項目提交行動。如何獲取所有列表框項目(不僅是選定的項目)在mvc提交行動
我使用Ajax的形式像
Ajax.BeginForm("actionname", new....)
我會在只有當我選擇列表框中的所有項目的列表框中的所有項目。
是否有無法獲得所有項目,不僅在動作頁面的lisbox中選擇了項目?
這並不像你想象的那麼容易,因爲從html的角度來看,只有在下拉列表中選擇的值是在提交時發送到服務器的值。
但是,如果它是您使用jQuery將數據作爲json發送的替代方法,則可以序列化列表框並將其發送到與您的模型一起的動作。
一種方式來做到這一點是這樣的:
假設您在任何給定的控制器
public ActionResult MyAction(string myDropDown, string myDropDownValues)
以下行動和你有要提交
此Ajax表單@using (Ajax.BeginForm("MyAction", new AjaxOptions()))
{
@Html.Hidden("myDropDownValues")
<select name="myDropDown" id="myDropDown">
<option value="0">First</option>
<option value="1">Second</option>
<option value="2">Third</option>
<option value="3">Fourth</option>
<option value="4">Fifth</option>
</select>
<input type="submit" id="submit" />
}
你現在要做的是掛鉤到這樣的表單提交事件:$('form').submit(function(){});
如果您的頁面上有多個表單,則應該使用更好的選擇器。在這個提交事件中,您可以使用.each()
方法遍歷您的下拉列表,然後在其中編寫json。
一旦你創建了你的json,你可以將它添加到一個隱藏的字段,以便更容易在服務器端處理。
它最終可能sometwhat看起來像這樣:
<script>
$(document).ready(function() {
$('form').submit(function() {
var json = "";
$("#myDropDown option").each(function() {
value = $(this).val()
text = $(this).html()
if (json.length != 0) json += ",";
json += value + ":" + text;
});
$('#myDropDownValues').val(json.toString());
});
});
</script>
當我提交表單現在字符串myDropDownValues
有以下內容:
0:First,1:Second,2:Third,3:Fourth,4:Fifth
試試這個
for (int i = 0; i < listBox1.Items.Count; i++) {
listBox1.SelectedIndex = i;
MessageBox.Show(listBox1.SelectedItem.ToString());
}
@Null Pointer,啊,我的錯誤。但很好,你可以適應這個想法:) – 2011-02-11 08:32:12