Бірнеше кішкене ашылмалы мәндердің барлығы нөлдік мәнге ие болса, мән өзгермейді ... Сондай-ақ, әдепкі мәні бойынша таңдалған мәнге ие болу керек

MVC 3 VB.NET ұстара. Менде төрт ашылмалы терезе бар деген пікір бар. Бұл қызметкерді құруға арналған. Егер бұл қызметкер белгілі бір сыныптарда жұмыс істейтін болса, бұл сынып әрбір күн үшін орнатылады. Егер ол болмаса, онда құндылық нөлге тең болмауы керек. Бұл редакциялау көрінісі, сондықтан бірнеше рет қатынасу қажет болуы мүмкін және егер ешкім өзгертілмесе, бастапқы таңдау тізімінің мәндерін сақтайды. Төменде мен қазір өз бетіммен жұмыс істейтінім бар. Алдымен таңдалған ескі мән көрсетіледі. Дегенмен, бұл құтқару үшін қайтарылмайды ... Тек дұрыс сақталатын жалғыз әдіс - әр қорапта орнатылған мәнді таңдағанда, сақтауды басу керек. Келесі мәселе - барлық қызметкерлердің 4 күннің әрқайсысында жұмыс істейтін сабақтары болмауы. Мәселен, егер мен сынып таңдалмаса, нөлге дейін мәнді қалай орнатамын және оны солай ұстап аламын.

    Dim _staff As confstaff = db.confstaffs.Single(Function(a) a.id = id)
        ViewBag.role = _staff.Conf_Role.ToString
        ViewBag.confRole = db.conf_roles.ToList
        ViewData("tue_Class") = New SelectList(db.courses.ToList.Where(Function(r) r.course_day = "Tuesday").Select(Function(r) r.course_ref), New With {.value = _staff.tue_class})
        ViewData("wed_Class") = New SelectList(db.courses.ToList.Where(Function(r) r.course_day = "Wednesday").Select(Function(r) r.course_ref), New With {.value = _staff.wed_class})
        ViewData("thur_Class") = New SelectList(db.courses.ToList.Where(Function(r) r.course_day = "Thursday").Select(Function(r) r.course_ref), New With {.value = _staff.thur_class})
        ViewData("fri_Class") = New SelectList(db.courses.ToList.Where(Function(r) r.course_day = "Friday").Select(Function(r) r.course_ref), New With {.value = _staff.fri_class})
        Return View(_staff)

Және көзқарас:

     
       @Html.DropDownList("tue_class", "Select One")
     
        @Html.DropDownList("wed_class", "Select One")
     
        @Html.DropDownList("thur_class", "Select One")
     
        @Html.DropDownList("fri_class", "Select One")

Мен біреудің көзілдірік үлгісін пайдаланудың орнына көрнекі модельді пайдалану керектігін күткенмін, бірақ менің ойымша, модель 100-ден астам түрлі курстарда практикалық болатындығын көрмеймін, бірақ идеяларға ашықпын ...

Any Ideas ???????

1

1 жауаптар

егер бет жүктелгеннен кейін сіздің бетіңіздің көзіне қарасаңыз, сіз қараған терезесіндегі жоғарғы элементтің мәнін ғана көресіз, сондықтан ол жіберілген кезде ол бос жіберіп жатыр деп ойлайды. Мен бұған дейін жүгірдім.

Сіз не істеуіңіз керек, тізімнен әр біреуін қолмен жасай отырып, таңдалған элементтің таңдалған мәнге ие екеніне сенімді бола алатын етіп, көрінетін элементке сәйкес келетін жиынтығымен және параметрін орнатыңыз. Менің мұнда Разр коды бар. Мен оны тапқан кезде жаңартады.

ӨҢДЕУ

     

Менде әртүрлі элементтер жиынтығынан сол беттегі ғимаратта бірнеше нәрсе бар. Бұл көмектеседі деп үміттенемін.

EDIT 2

Егер сіз мұны codebehind-те жасағыңыз келсе, мен VB жігіт емеспін, бірақ мұнда мұны істеудің жолы, бірақ сіз линкстік жазбаңыздыLList әдісінен демпингтің орнына тізім элементтерін қолмен жасау үшін өзгертуіңіз керек.

var courses = db.getCourses();
   IEnumerable selectList = 
    from c in courses
    where c.course_day = "Tuesday"
    select new SelectListItem
    {
        Selected = (c.CourseID == selectedCourseID),
        Text = c.Name,
        Value = c.CourseID.ToString()
    };

Егер сіз мұны VB эквивалентіне аудара алсаңыз, ол оларды Razor соңында жасаудың орнына мәселеңізді шешуі мүмкін.

1
қосылды
Хмммм бұл жерде болмауы мүмкін ... Менің редакциямның жоғарғы жағына қарап, Қарап шығу көзін көресіз ...
қосылды автор Skindeep2366, көзі
Мен кодты сәл өзгертіп алдым, себебі көріністі қарауға болады, бірақ ол таңдау тізімінің элементін таңдамайды ...
қосылды автор Skindeep2366, көзі
Мен қайта қаралған кодты қосып жатырмын
қосылды автор Skindeep2366, көзі
Бұл. Таңдауыңыздағы бірінші опцияны қараңыз. Мән «» орнатылды. <опция мәні = «»> T3 . Төменірек төмен қайтадан тиісті мәнге ие
қосылды автор benjamin, көзі
Мен таңдаған тізімдерді құру үшін Linq сұрау әдісін көрсету үшін қайтадан редакцияладым, бірақ мен VB жігіт емеспін, сондықтан сіз берген басқа кодқа түсініктеме бере алмаймын. Мен Razor мен C# -тегі проблеманы қалай шешетінімді білемін. Мен Linq үшін VB ұқсас синтаксис деп ойлаймын, осылайша сіз мұны істей аласыз.
қосылды автор benjamin, көзі