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

问题描述:

在我的经典asp应用程序中,我有一大堆复选框的标记页面。复选框控件ID是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 
%> 

This works great。

现在,在asp.net上,我使用多视图,我试图完成相同的。

在view1上,我有复选框。当我点击下一步时,我想根据复选框的值显示正确的下拉列表。

我该如何完成类似上面的代码?

感谢您提前。

+1

一个简单的网络搜索会带来很多'MultiView'控件的示例和教程,我们不是在这里为您编写代码。 – CodingGorilla

+0

哇,真是一个激动人心的人!我的父母养育了我说“如果你有一个糟糕的一天,不要把它拿出来别人”我已经写了超过1167行的多视点代码。我只需要指导如何写这一点。就这样。但非常感谢您的建设性贡献。 – Kenny

+0

我为你编码编码的大猩猩。我为你祈祷。 你收获你SOW。 – Kenny

一种方法是非常相似,你有什么...

在您的标记使用的<asp:checkboxlist>

然后您提交按钮的上单击事件,您可以设置下拉列表‘可见的’属性设置为true或false,根据你在你的CheckBoxList找到检查的值。

另外,你可以声明一些listitem对象,只有一个dropdownlist,并添加/从checkboxlist删除基于检查值listitem

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

沿着这种思路反正

+0

非常感谢Tamago的好意。我最大的问题是如何将控件从view1识别到view2。 多视图有3个页面或视图,虽然复选框位于视图1上,但下拉列表位于视图2上。 再次感谢和上帝保佑。 – Kenny

我从来没有使用多视点的东西,所以请原谅我,如果我完全关闭基地。但它看起来像视图1上的控件应该可以直接使用。由于您使用的是多视图,因此您实际上永远不会离开该页面,只需回发并更改活动视图即可。因此,对视图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,则显示dropdown2,如果选择了INKS和另一个复选框,则显示dropdown3。这在经典的asp中效果很好,但我无法在asp.net多视图中找到它。这是问题。 – Kenny

+0

我仍然没有看到断开连接的位置。您是否无法找出如何检测复选框的值?编辑我的答案,使其更具体。如果这还不够,你必须帮助我们理解你所困扰的是什么。 – Rich

+0

我现在工作。我对此有不同的看法。我有存储在数据库中的值,创建了3个小的子集,并根据选中的框的值,显示相应的下拉列表,并且它现在工作完美无瑕。非常感谢您的帮助和时间。 非常感谢。同样赞赏Tamago。你们会得到你们的帮助和善意。 – Kenny