我在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%。