2012-06-18 3 views
2

В моем классическом приложении asp у меня есть страница с разметкой с букетом флажков. Идентификатор элемента checkbox - bscv.Как я могу преобразовать это в asp.net?

Как только пользователь проверит коробку и нажимает кнопку «Отправить», значение обрабатывается на следующей странице, следующей за next.asp.

Исходя из значения отмеченного флажка, я показываю правильное выпадающее меню.

Я использую следующий код next.asp для отображения правильного выпадающего списка.

If bsvc = "master" Then 
    ' only master was checked 
    ' "If the user checks only master checkbox, ...txtmaster with 2 options... is displayed." 

%> 
<select id="txtmaster" name="txtmaster"> 
     <option value="">-Select a service-</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
    </select> 
<% 
Elseif InStr(bsvc, "master") > 0 Then 
    ' Master was checked, but something else was also checked 
    ' display txtmaster with all 7 options dropdowon 1 and 2  

%> 
<select id="txtmaster" name="txtmaster"> 
     <option value="">-Select a service-</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
     <option value="6">6</option> 
     <option value="7">7</option> 
    </select> 
<% 
Elseif Len(bsvc) > 0 Then 
    ' something was checked, but not master 
    ' " display only dropdown with 3 to 7 ." 

%> 
<select id="txtmaster" name="txtmaster"> 
      <option value="">-Select a service-</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="4">5</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
       <option value="7">7</option> 
    </select> 

<% 
Else 
    Response.Write "Error: You did not check any business serviced" 
End If 
%> 

Это прекрасно работает.

Теперь, на asp.net, я использую multiview, и я пытаюсь выполнить то же самое.

В представлении1 у меня есть флажки. Когда я нажимаю далее, мне будет нужно отобразить правильный раскрывающийся список на основе значения отмеченного поля.

Как я могу выполнить нечто похожее на код выше?

Благодарим вас заранее.

+1

Простой поиск в Интернете вызывает множество образцов и руководств для элемента управления MultiView, мы не здесь, чтобы написать ваш код для вас. – CodingGorilla

+0

WOW, какой зингер! Мои родители подняли меня, чтобы сказать: «Если у вас плохой день, не принимайте это на кого-то другого», я уже написал более 1167 строк мультивизового кода. Мне просто нужно руководство по написанию этого бита. Это все. Но большое спасибо за ваш конструктивный вклад. – Kenny

+0

Я МОЛИТЬСЯ для вас Кодирование Гориллы. Я за тебя молюсь. Вы ЗАВЕРШИТЕ то, что вы SOW. – Kenny

ответ

2

Один подход был бы очень похож на то, что у вас есть ...

Используйте <asp:checkboxlist> в разметке.

Затем для события отправки нажмите кнопку «on-click», вы можете установить для вашего списка раскрывающихся списков «видимое» значение true или false на основе отмеченных значений, которые вы найдете в своем списке.

В качестве альтернативы, вы можете объявить некоторые listitem объекты имеют только один dropdownlist, и добавить/удалить listitem на основе проверяемых значений из вашего checkboxlist.

For each myItem as listitem in myCheckboxlist 
if ctype(myItem, checkox).checked then... 

что-то вдоль этой линии мысли так или иначе

+0

Спасибо вам, Тамаго, за вашу доброту. Моя самая большая проблема заключается в том, как получить элементы управления, распознанные из view1 в view2. Мультивизля имеет 3 страницы или представления, а флажки находятся на view1, выпадающий список находится на view2. Опять же, большое спасибо, и Бог благословит. – Kenny

1

Я никогда не использовал мультивидовые, так что простите меня, если я полностью покинуть базу. Но похоже, что элементы управления на представлении 1 должны быть доступны напрямую. Поскольку вы используете Multiview, вы никогда не покидаете страницу, просто отправляете назад и меняете активный вид. Таким образом, все элементы управления в виде 1 (или любое другое представление) все еще доступны.

Если вы не можете напрямую обращаться к флажкам, скажите, являются ли эти флажки динамическими (например, бит данных или что-то еще), вы должны иметь возможность использовать View1.FindControl или что-то подобное.

Я что-то упустил?

'View1 contains three CheckBoxes and ButtonNext. 
'View2 contains three DropDownLists and ButtonBack. 

Protected Sub ButtonNext_Click(sender As Object, e As EventArgs) Handles ButtonNext.Click 
    SetListVisibility() 
    MultiView1.SetActiveView(View2) 
End Sub 

Protected Sub ButtonBack_Click(sender As Object, e As EventArgs) Handles ButtonBack.Click 
    MultiView1.SetActiveView(View1) 
End Sub 

Private Sub SetListVisibility() 
    If CheckBox1.Checked Then 
     If CheckBox2.Checked Or CheckBox3.Checked Then 
      DropDownList1.Visible = False 
      DropDownList2.Visible = False 
      DropDownList3.Visible = True 
     Else 
      DropDownList1.Visible = True 
      DropDownList2.Visible = False 
      DropDownList3.Visible = False 
     End If 
    Else 
     DropDownList1.Visible = False 
     DropDownList2.Visible = True 
     DropDownList3.Visible = False 
    End If 
End Sub 
+0

Благодарим вас за помощь, но я думаю, что вы решаете другую проблему. Пожалуйста, позвольте мне объяснить еще раз. У меня есть 3 выпадающих списка на странице разметки. Dropdown1 имеет 2 варианта, dropdown2 имеет 5 опций, dropdown3 имеет 7 опций (комбинация 1 и 2). Если пользователь проверяет флажок INKS для экземпляра, отображает только dropdown1, если INKS не выбрано, show dropdown2, если выбрано INKS и еще один флажок, show dropdown3. Это отлично работает в классическом asp, но я не могу понять это в мультиплеере asp.net. Это проблема. – Kenny

+0

Я все еще не вижу, где отключается. У вас возникли проблемы с выяснением того, как определить значение флажка? Отредактировал свой ответ, чтобы сделать его более конкретным. Если этого недостаточно, вам нужно будет помочь нам понять, на что вы застряли. – Rich

+0

У меня сейчас работает. Я подошел к нему по-другому. У меня есть значения, хранящиеся на db, созданы 3 небольших подкаталога и в зависимости от значения отмеченного поля отображаются соответствующий раскрывающийся список, и теперь он работает безупречно. Большое спасибо за вашу помощь и время. Большое значение. То же самое относится к Тамаго. Вы, ребята, получите вознаграждение за вашу помощь и доброту. – Kenny

Смежные вопросы