从服务器端代码

时间:2019-02-14 16:06:36

标签: html asp.net vb.net

我在网站上使用的是非常特定的样式,我需要ComboBox来允许用户选择预设位置或自行输入。我本打算使用Ajax Combobox,但是它具有自己的样式集,因此无法使其与其他控件的样式相匹配。因此,我决定使用提供的某些默认控件来制作自己的组合框。

除了没有找到将datasource设置为通用<datalist>控件的方法之外,我拥有了所有需要的东西。我可以像拨弄小提琴所示那样对设置的位置进行硬编码,但是当我们添加/删除位置时,我不想维护这种方式。有什么帮助吗?您可以在DataBind<datalist>,但是没有DataSource属性。

<input type="text" id="listLocations" list="dlLocations" runat="server" />
<datalist id="dlLocations" runat="server">
    <option value="Location1">Location 1</option>
    <option value="Location2">Location 2</option>
    <option value="Location3">Location 3</option>
</datalist>

VB.NET;创建虚拟记录

Dim dsLocations As New DataSet
Dim dtLocations As New DataTable

dtLocations.Columns.Add("Description")

For i As Integer = 0 To 4
    dtLocations.Rows.Add("Location " & (i + 1))
Next

dsLocations.Tables.Add(dtLocations)

'dlLocations.DataSource = dsLocations.Tables(0).DefaultView
'dlLocations.DataBind()

我尝试使用<asp:datalist>作为来源,但它不会像普通的<datalist>那样隐藏。它可以绑定,但是会以常规列表的形式显示在文本框下方。

<asp:DataList ID="dlLocations"  runat="server">
    <ItemTemplate>
        <%#Eval("Description")%>
    </ItemTemplate>
</asp:DataList> 

https://jsfiddle.net/hhaag18/fk13qgb8/

0 个答案:

没有答案