无法将数据从数据库获取到登录视图中的下拉列表



我在aspx页面上有这段代码。

<asp:DropDownList runat="server" ID="ddlSize" CssClass="textbox" Width="100px">
<asp:ListItem Value="" Text="" />
<asp:ListItem Value="11" Text="11. Mands" />
<asp:ListItem Value="7" Text="7. Mands" />
<asp:ListItem Value="" Text="Ikke Kamp"/>
</asp:DropDownList>

 <asp:DropDownList runat="server" ID="ddlType" CssClass="textbox" Width="100px">
 <asp:ListItem Value="" Text="" />
 <asp:ListItem Value="K" Text="Kamp" />
 <asp:ListItem Value="T" Text="Træning" />
 <asp:ListItem Value="E" Text="Aktivitet"/>
 </asp:DropDownList>

带有一些其他字段的登录视图中的 ts(文本框)我试图将记录 ID 放入页面以便我可以对其进行编辑,我已经使用 Textbox 修复了它并且它 100% 有效,但我无法将数据库中的值获取到下拉列表中,因此它显示该值为已选中。我已经尝试了这 3 个代码,但在下拉列表中没有任何工作。

// DataValueField               
Dim drop_obj As DropDownList = TryCast(LoginView2.FindControl("ddlSize"), DropDownList)
drop_obj.DataValueField = dtEvents.Rows(0)("EventEventSize")
Dim drop_obj2 As DropDownList = TryCast(LoginView2.FindControl("ddlType"), DropDownList)
drop_obj2.DataValueField = dtEvents.Rows(0)("EventType")
// SelectedIndex
Dim drop_obj As DropDownList = TryCast(LoginView2.FindControl("ddlSize"), DropDownList)
drop_obj.SelectedIndex = dtEvents.Rows(0)("EventEventSize")
Dim drop_obj2 As DropDownList = TryCast(LoginView2.FindControl("ddlType"), DropDownList)
drop_obj2.SelectedIndex = dtEvents.Rows(0)("EventType")
// SelectedValue
Dim drop_obj As DropDownList = TryCast(LoginView2.FindControl("ddlSize"), DropDownList)
drop_obj.SelectedValue = dtEvents.Rows(0)("EventEventSize")
Dim drop_obj2 As DropDownList = TryCast(LoginView2.FindControl("ddlType"), DropDownList)
drop_obj2.SelectedValue = dtEvents.Rows(0)("EventType")

有人可以请帮助!?我在 2 个 dtEvents.Rows(0) 中有值,我已经检查过,通过调试然后单步执行。我得到像 7 或 11 和 T 或 K 这样的值。

我认为您正在尝试将表绑定到列表。

您希望利用以下两个属性:

DataTextField
DataValueField

因此,您希望将DataTextField(用户将看到的内容)设置为包含显示文本的列,然后将DataValueField(看不到的项目的值)设置为包含该文本的列。然后你想打电话给DataBind().

例如(我的 VB 非常生锈):

Dim myDDL AS DropDownList();
myDDL.DataTextField = myTable("ColumnDataUserSees")
myDDL.DataValueField = myTable("ColumnDataIWillUse")
myDDL.DataBind()

一定要检查该语法。我已经使用 C# 几个月了,没有 VB,所以这可能不是 100%。

最新更新