2017-06-12 51 views
0
public List<SelectListItem> getTickerName() 
{ 
    List<SelectListItem> lstTicker = new List<SelectListItem>(); 
    DataSet ds = new DataSet(); 

    //ds = BasicBoObj.getDatasetSP("sp_TickerNameForCompanies"); 
    ds = BasicBoObj.getDatasetSP("sp_ConfAdminCompanies"); 

    foreach (DataRow dr in ds.Tables[0].Rows) 
    { 
     lstTicker.Add(new SelectListItem { Text = Convert.ToString(dr["DisplayCompanyName"]), Value = Convert.ToString(dr["code"]) }); 
    } 
    return lstTicker; 
} 

我想访问此lstTickerText想要将下拉菜单的文本保存到数据库中

Text中,我传递公司名称,并在“Value”中将ID传递给存储过程。

我怎么能只访问“文”我有公司的名字,我想存储在数据库

我访问值

presentationParentObj.lstCompany = getTickerName(); 

public List<SelectListItem> lstCompany { get; set; } 


@Html.DropDownListFor(m => m.PresentationParentObj.Year, Model.lstYear, "Select Year", new { style = "vertical-align: top;", @id = "lstYear", @class = "form-control" }) 
+0

你如何阅读“lstTicker”选定的文本? –

+0

它看起来像是缺少一些代码来理解你正在采取的步骤,但对于你提供的信息,我会说你有两个选择。 1.在'SelectLisItem'中输入公司名称作为值(我不推荐)。 2.当您收到请求进入服务器的代码(在SelectLisItem中设置的值)您获取公司名称,然后做你的保存。问候。 – dime2lo

+0

你从哪里得到'id'和'CompanyName'?你想要保存的公司在哪里,哪里还能通过? – jamiedanq

回答

0

这将工作:

控制器/型号:

public class MyViewModelSO 
{ 
    public int selectedValue { get; set; } 
    public List<SelectListItem> tickers = HomeController.getTickerName(); 
} 

public class HomeController : Controller 
{ 
    [HttpPost] 
    public ActionResult Index2007(MyViewModelSO myViewModel) 
    { 
     //save 
     var value = myViewModel.tickers.Where(r => r.Value == myViewModel.selectedValue.ToString()). 
      Select(s => s.Text).ToList(); 

     //put breakpoint here to see value contains text 
     //...rest of save 

     return View(myViewModel); 
    } 

    public ActionResult Index2007() 
    { 
     var myViewModel = new MyViewModelSO(); 
     return View(myViewModel); 
    } 

    public static List<SelectListItem> getTickerName() 
    { 
     List<SelectListItem> lstTicker = new List<SelectListItem>(); 

     using (SqlConnection conn = new SqlConnection(@"Server=.\sqlexpress;DataBase={MyDB};Integrated Security=SSPI")) 
     { 
      conn.Open(); 
      SqlCommand cmd = new SqlCommand("sp_ConfAdminCompanies", conn); 
      cmd.CommandType = CommandType.StoredProcedure; 

      // execute the command 
      using (SqlDataReader rdr = cmd.ExecuteReader()) 
      { 
       // iterate through results, printing each to console 
       while (rdr.Read()) 
       { 
        lstTicker.Add(new SelectListItem 
        { 
         Text = rdr["DisplayCompanyName"].ToString(), 
         Value = rdr["code"].ToString() 
        }); 

       } 
      } 
     } 
     return lstTicker; 
    } 

视图:

@model Testy20161006.Controllers.MyViewModelSO 
<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index2007</title> 
</head> 
<body> 
    <div> 
     @using (Html.BeginForm()) 
     { 
      <table> 
       <tr> 
        <td>@Html.LabelFor(r => r.selectedValue)</td> 
         <td> 
          @Html.DropDownListFor(m => m.selectedValue, 
          new SelectList(Model.tickers, "Value", "Text")) 

       </tr> 
      </table> 
      <input type="submit" value="SaveTextNotValue" /> 
     } 
    </div> 
</body> 
</html> 
+0

我已编辑我的任务,请你看看它? – Dinup

+0

@Dinup我编辑了我的答案 – kblau

+0

谢谢你为我工作 – Dinup

0

嗨,你可以使用selectedItem.Text这里的属性是例如:

[HttpPost] 
    public ActionResult Index(FruitModel fruit) 
    { 
     fruit.Fruits = PopulateFruits(); 
     var selectedItem = fruit.Fruits.Find(p => p.Value == fruit.FruitId.ToString()); 
     if (selectedItem != null) 
     { 
      selectedItem.Selected = true; 
      ViewBag.Message = "Fruit: " + selectedItem.Text; 
      ViewBag.Message += "\\nQuantity: " + fruit.Quantity; 
     } 

     return View(fruit); 
    } 

来源:https://www.aspsnippets.com/Articles/ASPNet-MVC-Get-DropDownList-Selected-Text-and-Selected-Value-in-Controller.aspx

希望这将有助于

感谢

Karthik

相关问题