我该如何将其转换为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上,我有复选框。当我点击下一步时,我想根据复选框的值显示正确的下拉列表。
我该如何完成类似上面的代码?
感谢您提前。
一种方法是非常相似,你有什么...
在您的标记使用的<asp:checkboxlist>
。
然后您提交按钮的上单击事件,您可以设置下拉列表‘可见的’属性设置为true或false,根据你在你的CheckBoxList找到检查的值。
另外,你可以声明一些listitem
对象,只有一个dropdownlist
,并添加/从checkboxlist
删除基于检查值listitem
。
For each myItem as listitem in myCheckboxlist
if ctype(myItem, checkox).checked then...
沿着这种思路反正
非常感谢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
谢谢你的帮助,但我认为你正在解决一个不同的问题。 请允许我再次解释。我在标记页面上有3个下拉菜单。 Dropdown1有2个选项,dropdown2有5个选项,dropdown3有7个选项(1和2的组合)。如果用户检查实例INKS复选框,则只显示dropdown1,如果未选择INKS,则显示dropdown2,如果选择了INKS和另一个复选框,则显示dropdown3。这在经典的asp中效果很好,但我无法在asp.net多视图中找到它。这是问题。 – Kenny
我仍然没有看到断开连接的位置。您是否无法找出如何检测复选框的值?编辑我的答案,使其更具体。如果这还不够,你必须帮助我们理解你所困扰的是什么。 – Rich
我现在工作。我对此有不同的看法。我有存储在数据库中的值,创建了3个小的子集,并根据选中的框的值,显示相应的下拉列表,并且它现在工作完美无瑕。非常感谢您的帮助和时间。 非常感谢。同样赞赏Tamago。你们会得到你们的帮助和善意。 – Kenny
一个简单的网络搜索会带来很多'MultiView'控件的示例和教程,我们不是在这里为您编写代码。 – CodingGorilla
哇,真是一个激动人心的人!我的父母养育了我说“如果你有一个糟糕的一天,不要把它拿出来别人”我已经写了超过1167行的多视点代码。我只需要指导如何写这一点。就这样。但非常感谢您的建设性贡献。 – Kenny
我为你编码编码的大猩猩。我为你祈祷。 你收获你SOW。 – Kenny