Asp.net 将下拉列表设置为从不同于填充值的位置开始
谷歌搜索了一段时间,但在任何地方都看不到这个答案 在VS2013中使用ASP.NET(VB) 我有一个带有4个预设值的下拉列表(见下文)Asp.net 将下拉列表设置为从不同于填充值的位置开始,asp.net,vb.net,Asp.net,Vb.net,谷歌搜索了一段时间,但在任何地方都看不到这个答案 在VS2013中使用ASP.NET(VB) 我有一个带有4个预设值的下拉列表(见下文) 这些值以15分钟的间隔表示分钟 当页面加载时,我想将当前时间(以分钟为单位)放在此下拉列表中,用户可以根据需要更改为15分钟的时间段。我知道如何在VB中获取当前分钟,但不知道如何设置DDL。使用selectedvalue不起作用。text也不起作用 干杯由于下拉列表只能设置为列表中的值,因此您需要将当前分钟动态添加到页面加载事件中的下拉列表值中: Prot
这些值以15分钟的间隔表示分钟
当页面加载时,我想将当前时间(以分钟为单位)放在此下拉列表中,用户可以根据需要更改为15分钟的时间段。我知道如何在VB中获取当前分钟,但不知道如何设置DDL。使用selectedvalue不起作用。text也不起作用
干杯由于下拉列表只能设置为列表中的值,因此您需要将当前分钟动态添加到页面
加载
事件中的下拉列表值中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim currentMinute = Date.Now.Minute
Dim currentMinuteString = CStr(currentMinute).PadLeft(2, "0"c)
If currentMinute Mod 15 = 0 Then
Me.TimeTextMins.SelectedValue = currentMinuteString
Else
Dim position = (currentMinute \ 15) + 1
Me.TimeTextMins.Items.Insert(position, currentMinuteString)
Me.TimeTextMins.SelectedValue = currentMinuteString
End If
End If
End Sub
更新
根据您对这个问题的评论,您只希望下拉列表中有15分钟的间隔,我不知道您可以使用标准的下拉列表控件来实现这一点,但是有第三方HTML控件更像combobox。您可以在更改选择时删除添加的项目:
Private Sub TimeTextMins_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TimeTextMins.SelectedIndexChanged
Dim itemsToRemove =
Me.TimeTextMins.Items.Cast(Of ListItem)() _
.Where(Function(x) x IsNot Me.TimeTextMins.SelectedItem AndAlso CInt(x.Value) Mod 15 <> 0) _
.ToList()
For Each item In itemsToRemove
Me.TimeTextMins.Items.Remove(item)
Next
End Sub
Private Sub-TimeTextMins\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理TimeTextMins.SelectedIndexChanged
Dim itemsToRemove=
Me.TimeTextMins.Items.Cast(列表项的)()_
.Where(函数(x)x不是Me.TimeTextMins.SelectedItem和also CInt(x.Value)Mod 15 0)_
托利斯先生()
对于itemsToRemove中的每个项目
Me.TimeTextMins.Items.Remove(项目)
下一个
端接头
您需要将
AutoPostBack=“true”
添加到asp:DropDownList
标记中。由于下拉列表只能设置为列表中的值,因此您需要将当前分钟动态添加到页面Load
事件:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim currentMinute = Date.Now.Minute
Dim currentMinuteString = CStr(currentMinute).PadLeft(2, "0"c)
If currentMinute Mod 15 = 0 Then
Me.TimeTextMins.SelectedValue = currentMinuteString
Else
Dim position = (currentMinute \ 15) + 1
Me.TimeTextMins.Items.Insert(position, currentMinuteString)
Me.TimeTextMins.SelectedValue = currentMinuteString
End If
End If
End Sub
更新
根据您对这个问题的评论,您只希望下拉列表中有15分钟的间隔,我不知道您可以使用标准的下拉列表控件来实现这一点,但是有第三方HTML控件更像combobox。您可以在更改选择时删除添加的项目:
Private Sub TimeTextMins_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TimeTextMins.SelectedIndexChanged
Dim itemsToRemove =
Me.TimeTextMins.Items.Cast(Of ListItem)() _
.Where(Function(x) x IsNot Me.TimeTextMins.SelectedItem AndAlso CInt(x.Value) Mod 15 <> 0) _
.ToList()
For Each item In itemsToRemove
Me.TimeTextMins.Items.Remove(item)
Next
End Sub
Private Sub-TimeTextMins\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理TimeTextMins.SelectedIndexChanged
Dim itemsToRemove=
Me.TimeTextMins.Items.Cast(列表项的)()_
.Where(函数(x)x不是Me.TimeTextMins.SelectedItem和also CInt(x.Value)Mod 15 0)_
托利斯先生()
对于itemsToRemove中的每个项目
Me.TimeTextMins.Items.Remove(项目)
下一个
端接头
您需要将
AutoPostBack=“true”
添加到asp:DropDownList
标记中。由于下拉列表只能设置为列表中的值,因此您需要将当前分钟动态添加到页面Load
事件:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim currentMinute = Date.Now.Minute
Dim currentMinuteString = CStr(currentMinute).PadLeft(2, "0"c)
If currentMinute Mod 15 = 0 Then
Me.TimeTextMins.SelectedValue = currentMinuteString
Else
Dim position = (currentMinute \ 15) + 1
Me.TimeTextMins.Items.Insert(position, currentMinuteString)
Me.TimeTextMins.SelectedValue = currentMinuteString
End If
End If
End Sub
更新
根据您对这个问题的评论,您只希望下拉列表中有15分钟的间隔,我不知道您可以使用标准的下拉列表控件来实现这一点,但是有第三方HTML控件更像combobox。您可以在更改选择时删除添加的项目:
Private Sub TimeTextMins_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TimeTextMins.SelectedIndexChanged
Dim itemsToRemove =
Me.TimeTextMins.Items.Cast(Of ListItem)() _
.Where(Function(x) x IsNot Me.TimeTextMins.SelectedItem AndAlso CInt(x.Value) Mod 15 <> 0) _
.ToList()
For Each item In itemsToRemove
Me.TimeTextMins.Items.Remove(item)
Next
End Sub
Private Sub-TimeTextMins\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理TimeTextMins.SelectedIndexChanged
Dim itemsToRemove=
Me.TimeTextMins.Items.Cast(列表项的)()_
.Where(函数(x)x不是Me.TimeTextMins.SelectedItem和also CInt(x.Value)Mod 15 0)_
托利斯先生()
对于itemsToRemove中的每个项目
Me.TimeTextMins.Items.Remove(项目)
下一个
端接头
您需要将
AutoPostBack=“true”
添加到asp:DropDownList
标记中。由于下拉列表只能设置为列表中的值,因此您需要将当前分钟动态添加到页面Load
事件:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim currentMinute = Date.Now.Minute
Dim currentMinuteString = CStr(currentMinute).PadLeft(2, "0"c)
If currentMinute Mod 15 = 0 Then
Me.TimeTextMins.SelectedValue = currentMinuteString
Else
Dim position = (currentMinute \ 15) + 1
Me.TimeTextMins.Items.Insert(position, currentMinuteString)
Me.TimeTextMins.SelectedValue = currentMinuteString
End If
End If
End Sub
更新
根据您对这个问题的评论,您只希望下拉列表中有15分钟的间隔,我不知道您可以使用标准的下拉列表控件来实现这一点,但是有第三方HTML控件更像combobox。您可以在更改选择时删除添加的项目:
Private Sub TimeTextMins_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TimeTextMins.SelectedIndexChanged
Dim itemsToRemove =
Me.TimeTextMins.Items.Cast(Of ListItem)() _
.Where(Function(x) x IsNot Me.TimeTextMins.SelectedItem AndAlso CInt(x.Value) Mod 15 <> 0) _
.ToList()
For Each item In itemsToRemove
Me.TimeTextMins.Items.Remove(item)
Next
End Sub
Private Sub-TimeTextMins\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理TimeTextMins.SelectedIndexChanged
Dim itemsToRemove=
Me.TimeTextMins.Items.Cast(列表项的)()_
.Where(函数(x)x不是Me.TimeTextMins.SelectedItem和also CInt(x.Value)Mod 15 0)_
托利斯先生()
对于itemsToRemove中的每个项目
Me.TimeTextMins.Items.Remove(项目)
下一个
端接头
您需要将
AutoPostBack=“true”
添加到您的asp:DropDownList
标记中。您可以使用标准下拉列表来完成此操作,并且可以在列表展开时隐藏当前时间项,而无需回发。您必须编写js函数并将其分配给onmousedown事件,然后执行一些小技巧
首先将您计算的当前时间设置为列表中第一项的“文本”属性(将其“值”保留为“00”),并将代码保留在加载页面上
当页面加载时,您将在下拉列表中看到当前时间作为选定时间。现在,在分配给onmousedown的js函数中,您只需将第一个选项的innerText属性设置为“00”:
您只需使用flag变量执行一次:
var flag = 0;
function dropDownList_MouseDown()
{
if (flag == 0)
{
var list = document.getElementById('<%= DropDownList1.ClientID %>');
list.options[0].innerText = '00';
flag =1;
}
}
var标志=0;
函数dropDownList_MouseDown()
{
如果(标志==0)
{
var list=document.getElementById(“”);
列表。选项[0]。innerText='00';
flag=1;
}
}
您可以使用标准下拉菜单进行操作,并且可以在列表展开时隐藏当前时间项,而无需回发。您必须编写js函数并将其分配给onmousedown事件,然后执行一些小技巧
首先将计算的当前时间设置为“文本”