Как я могу заполнить выпадающее меню, используя данные из базы данных? - PullRequest
0 голосов
/ 08 сентября 2011

Я продолжаю получать это сообщение об ошибке. Исключительная ситуация InvalidCastException была обработана пользователем. Невозможно привести объект типа «System.Int32» к типу «System.String».Мне сказали, что значение представления данных для группы крови неверно.Просто пытаюсь понять, как определить стоимость.Я новичок в asp.net, поэтому не очень разбираюсь в данный момент.

  <select name="bloodtype">
   <% List<Hospital.bloodtype> bloodtypeList = (List <Hospital.bloodtype>) ViewData["bloodtypeList"];
       foreach (Hospital.bloodtype st in bloodtypeList)

       { 
    %>  
       <option value="="<%= st.bloodcode%>"><% *if (st.bloodcode==(String) ViewData["bloodtype"])* Response.Write("Selected"); %><% Response.Write(st.meaning);%>></option> 
    <% } %> 
      <option value="0" <% if ((Int32) ViewData["bloodtype"]==0) Response.Write("Selected");%>>
      </option>



    public void HospitalInit()
    {

        hospitalSQLEntities db = new hospitalSQLEntities();
        ViewData["bloodtypeList"] = db.bloodtypes.ToList();
        ViewData["patientid"] = "";
        ViewData["patientname"] = "";
        ViewData["bloodtype"] = 0;
        ViewData["junk"] = "";
        ViewData["spam"] = "";
        ViewData["comments"] = "";
        ViewData["formmessage"] = "";
    }



    public ObjectSet<bloodtype> bloodtypes
    {
        get

        {
            if ((_bloodtypes == null))
            {
                _bloodtypes = base.CreateObjectSet<bloodtype>("bloodtypes");
            }
            return _bloodtypes;
        }
    }

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Лучший способ сделать это - определить список типов крови в вашем коде, например:

private List<bloodtype> _bloodtypes = new list<bloodtype>(); 

Далее вы можете использовать элемент управления списком ASP.NET, который вы размещаете на своей странице и для которого вы привязываете данные к указанному списку (также в коде ниже), например так:

public void PageLoad(){    
    _bloodtypes = GetBloodTypes();
    myCombobox.DataSource = _bloodtypes;
    myCombobox.DataBind();
}

private IList<bloodtype> GetBloodTypes(){
    // Get some bloodtypes
    return new List<bloodtype>();
}

Конечно, перед привязкой данных вам необходимо заполнить список (как показано выше).

0 голосов
/ 08 сентября 2011

Вместо каста используйте конверт

Convert.ToInt32 (ViewData [ "Группа крови"])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...