在我的经典asp应用程序中,我有一个带有一堆复选框的标记页面。复选框控件ID是bscv。
用户选中一个框并单击“提交”后,该值将在名为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,我正在努力实现同样的目标。
在view1上,我有复选框。当我点击下一步时,我想根据复选框的值显示正确的下拉列表。
我怎样才能完成与上面代码类似的东西?
提前感谢你。
答案 0 :(得分:2)
一种方法与你拥有的方法非常相似......
在标记中使用<asp:checkboxlist>
。
然后,对于提交按钮的点击事件,您可以根据您在复选框列表中找到的选中值,将下拉列表''visible'属性设置为true或false。
或者,您可以声明一些listitem
个对象,只有一个dropdownlist
,并根据listitem
中选中的值添加/删除checkboxlist
。
For each myItem as listitem in myCheckboxlist
if ctype(myItem, checkox).checked then...
无论如何,还是沿着那条思路开始的
答案 1 :(得分:1)
我从未使用过Multiview,所以请原谅我,如果我完全偏离基础。但看起来视图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