2017-06-12 47 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

相關問題