Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 下拉条件列表项ASP VB_Asp.net_Vb.net_Drop Down Menu - Fatal编程技术网

Asp.net 下拉条件列表项ASP VB

Asp.net 下拉条件列表项ASP VB,asp.net,vb.net,drop-down-menu,Asp.net,Vb.net,Drop Down Menu,所以我有一个我正在处理的ASP页面,在这个页面上有一个下拉列表和一个按钮(除其他外,这些都很重要)。下拉列表选择一个商店的位置,这个页面上的按钮会弹出一个窗口供用户操作。在这个弹出页面上有一个下拉菜单,有4个选项:“信息亭、警报1、警报2和警报3”。但并不是所有的商店都有售货亭。因此,我需要找到一种方法,使“kiosk”不会在商店没有kiosk的情况下显示为下拉列表项。我知道如何获取代码来检查商店是否有售货亭。我只是不知道如何将下拉列表更改为不包含“kiosk”项。这是我在ASP代码中做的事情吗

所以我有一个我正在处理的ASP页面,在这个页面上有一个下拉列表和一个按钮(除其他外,这些都很重要)。下拉列表选择一个商店的位置,这个页面上的按钮会弹出一个窗口供用户操作。在这个弹出页面上有一个下拉菜单,有4个选项:“信息亭、警报1、警报2和警报3”。但并不是所有的商店都有售货亭。因此,我需要找到一种方法,使“kiosk”不会在商店没有kiosk的情况下显示为下拉列表项。我知道如何获取代码来检查商店是否有售货亭。我只是不知道如何将下拉列表更改为不包含“kiosk”项。这是我在ASP代码中做的事情吗?还是代码隐藏的页面加载(VB.Net)?还是这是javascript?请原谅,但我对ASP很陌生,这是我的第一个项目。非常感谢你们

用于下拉列表的ASP

 <asp:DropDownList ID="stateDropDownList" AutoPostBack="true" style="align-content:center; margin-left:200px" width="100px"  runat="server">
                <asp:ListItem Selected="True" disabled="disabled" Value=""> Email Lists </asp:ListItem>
                <asp:ListItem Value="kiosk"> Kiosk </asp:ListItem>
                <asp:ListItem Value="alert1"> Alert 1 </asp:ListItem>
                <asp:ListItem Value="alert2"> Alert 2 </asp:ListItem>
                <asp:ListItem Value="alert3"> Alert 3 </asp:ListItem>
            </asp:DropDownList>

电子邮件列表
小亭
警报1
警报2
警报3

以下是几个简单的示例,说明如何在加载页面上隐藏ListItem

HTML

如果你想动态地做,你可以用这个例子。我在添加动态控件时使用占位符。有几种不同的方法可以添加下面引用的列表项

<asp:PlaceHolder ID="DropDownListPlaceHolder" runat="server" />

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        ' Load up your Store object, or whatever object it is you are using to determine if it has a Kiosk
        Dim store As New Store()

        Dim ddl As New DropDownList()
        ddl.ID = "TestID"
        ddl.AutoPostBack = True
        ddl.Style.Add("align-content", "center")
        ddl.Width = New Unit(100)

        Dim li As New ListItem("EmaiL Lists", String.Empty)
        li.Selected = True
        li.Attributes.Add("disabled", "disabled")
        ddl.Items.Insert(0, li)

        ddl.Items.Insert(1, New ListItem("Alert 1", "1"))
        ddl.Items.Add(New ListItem("Alert 2", "2"))

        If store.HasKiosk Then
            ddl.Items.Add(New ListItem("Kiosk", "2"))
        End If
End Sub

受保护的子页_Load(ByVal sender作为对象,ByVal e作为事件args)处理Me.Load
'加载您的商店对象,或者您正在使用的任何对象,以确定它是否有一个信息亭
将门店设置为新店()
将ddl设置为新的下拉列表()
ddl.ID=“TestID”
ddl.AutoPostBack=True
ddl.Style.Add(“对齐内容”、“居中”)
ddl.宽度=新单位(100)
Dim li作为新列表项(“电子邮件列表”,String.Empty)
li.Selected=True
li.属性。添加(“禁用”、“禁用”)
ddl.Items.Insert(0,li)
ddl.Items.Insert(1,新列表项(“警报1”、“1”))
ddl.Items.Add(新列表项(“警报2”、“2”))
如果是store.HasKiosk,那么
ddl.Items.Add(新列表项(“Kiosk”、“2”))
如果结束
端接头

您有几个不同的选择。您可以动态创建DropDownList,这样在代码隐藏中,如果您知道Kiosk是一个选项,那么当您创建DropDownList时,您可以添加它,也可以不添加它。另一种方法是从DropDownList中删除ListItem。类似于
stateDropDownList.Items.RemoveAt(0)
或信息亭将位于的任何索引。谢谢!我肯定会选择RemoveAt one,因为列表已经设置好了。我感谢你的帮助!
Imports System.Linq

Partial Class _testPW22
    Inherits System.Web.UI.Page

    Private Class Store
        Public Property HasKiosk As Boolean = False
    End Class

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        ' Load up your Store object, or whatever object it is you are using to determine if it has a Kiosk
        Dim store As New Store()

        If Not store.HasKiosk Then

            ' Option 1 if you know the index
            stateDropDownList.Items.RemoveAt(1)

            ' Opton 2 - you need to count down to 0 in order to remove from the collection you are iterating through
            For i As Integer = stateDropDownList.Items.Count - 1 To 0 Step -1
                If String.Equals(stateDropDownList.Items(i).Value, "Kiosk", StringComparison.InvariantCultureIgnoreCase) Then
                    stateDropDownList.Items.RemoveAt(i)
                End If
            Next

            ' Option 3 - fancy LINQ
            ' Make sure list item exists first, and then remove it
            If stateDropDownList.Items.Cast(Of ListItem)().Any(Function(r) String.Equals(r.Value, "Kiosk", StringComparison.InvariantCultureIgnoreCase)) Then
                stateDropDownList.Items.Remove(stateDropDownList.Items.Cast(Of ListItem)().FirstOrDefault(Function(r) String.Equals(r.Value, "Kiosk", StringComparison.InvariantCultureIgnoreCase)))
            End If


        End If



    End Sub

End Class
<asp:PlaceHolder ID="DropDownListPlaceHolder" runat="server" />

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        ' Load up your Store object, or whatever object it is you are using to determine if it has a Kiosk
        Dim store As New Store()

        Dim ddl As New DropDownList()
        ddl.ID = "TestID"
        ddl.AutoPostBack = True
        ddl.Style.Add("align-content", "center")
        ddl.Width = New Unit(100)

        Dim li As New ListItem("EmaiL Lists", String.Empty)
        li.Selected = True
        li.Attributes.Add("disabled", "disabled")
        ddl.Items.Insert(0, li)

        ddl.Items.Insert(1, New ListItem("Alert 1", "1"))
        ddl.Items.Add(New ListItem("Alert 2", "2"))

        If store.HasKiosk Then
            ddl.Items.Add(New ListItem("Kiosk", "2"))
        End If
End Sub