2015-10-26 108 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

非常感谢,..工作..感谢您的时间 –

相关问题