2015-10-26 60 views
0

我是新來的MVC,並試圖建立一個簡單的Web應用程序。使用javascript從MVC列表中獲取特定的列

我有一類 - listItems中

public class ListItems 
{ 
    public string Display { get; set; } 
    public string Value { get; set; } 
    public string Area { get; set; } 
    public string LongDescription { get; set; } 
} 

從控制器 -

我使用函數來填充下拉列表。數據的值被填充到時listItems

List<ListItems> Lst= new List<ListItems>(); 

     string query = @"SELECT DISTINCT A.[COLA],A.[COLB],[COLC] FROM tableA "; 

轉到Dataset ds

ListItems item; 
foreach (DataRow row in ds.Tables[0].Rows) 
       { 
       item = new ListItems(); 
item.Value = DBBase.ConvertToString(row["COLA"], string.Empty);   
item.Display = DBBase.ConvertToString(row["COLB"], string.Empty); 
item.Area = DBBase.ConvertToString(row["COLC"], string.Empty); 
        statusList.Add(item); 
      } 

在立即查看

@Html.DropDownListFor(model => model.COLA, new SelectList(Model.VenueList, "Value", "Display","Area"), "- Please select a Value-", new { id = "lstA" }) 

,我需要的 '地區' 欄下拉列表的「LSTA的價值在按鈕的JavaScript 點擊

在javascript中

function AB(){ 

$('#lstVenue :selected').val(); // this gives selected value 
} 

如何獲得column'Area'的值?

+0

的Javascript只能給你一)無論你呈現爲結果的HTML或b)任何你通過Ajax調用想。對於您的用例選項b看起來像是一種矯枉過正。那麼,列「區域」的值是否最終在您的呈現HTML中呢? –

+0

您需要處理下拉列表的'change()'事件,並根據所選值調用服務器方法來獲取「Area」的值(或者您可以將列表分配給一個JavaScript變量並從那裏獲取它) –

+0

我已經在視圖中添加了「Area」列下拉列表 - @ Html.DropDownListFor(model => model.COLA,new SelectList(Model.VenueList,「Value」,「Display」,「Area」),「 - Please選擇一個值 - 「,新{id =」lstA「})..不會在HTML中呈現? –

回答

0

由於下拉列表不能綁定3個值,你必須設置ValueArea到選項的值與獨特的個性(我用「#」爲例)是這樣的:

// Make sure '#' doesn't appear on "Value" nor "Area" 
@Html.DropDownListFor(model => model.COLA, new SelectList(Model.VenueList.Select(v => new { Display = v.Display, Value = string.Concat(v.Value, "#", v.Area) }), "Value", "Display"), "- Please select a Value-", new { id = "lstA" }) 

然後,你可以同時獲得這樣的「價值」和「區域」用JavaScript(jQuery的):

var selected = $('#lstA :selected').val(); 
var splited = selected.split("#"); 
var value = splited[0]; 
var area = splited[1]; 
if (area == "0"){ 
    // Do something 
} 
+0

非常感謝,..工作..感謝您的時間 –