我该如何将其转换为asp.net?

时间:2012-06-18 19:47:54

标签: asp.net vb.net

在我的经典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上,我有复选框。当我点击下一步时,我想根据复选框的值显示正确的下拉列表。

我怎样才能完成与上面代码类似的东西?

提前感谢你。

2 个答案:

答案 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