我在Dropdownlist中填充数据集时遇到了问题。我想在dropdownlist中显示我的数据库表中的用户名列,但只显示最后一行的值。我被困了,经过几个小时的搜索,我找不到任何解决方案,每个代码几乎都给我同样的问题。 这是我想要做的:
Dataset ds = new Dataset();
ds = db.search();
if(ds.Tables[0].Rows.Count>0)
{
DropDownList1.DataSource=ds;
DropDownList1.DataBind();
}
在ASP标记中:
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
答案 0 :(得分:1)
请在下拉列表的下方设置,如服务器端的代码所示。请将“用户名”和“ID”替换为“检索记录集”列名称。
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "UserName";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();
答案 1 :(得分:0)
Using ds As DataSet = data_readers.data.ExecuteDataSet("LoadSearch", NOTHING)
If ds.Tables.Count > 0 Then
If ds.Tables(0).Rows.Count > 0 Then
DropDownList1.DataSource = New DataView(ds.Tables("myDataset"))
DropDownList1.DataBind
End If
End If
End Using
答案 2 :(得分:0)
你的“ASP Markup”完全是空的!这里看看我的代码,它应该是您的源页面的一个很好的例子:
您还需要设置objectdatasource:我在下拉列表下方提供了该代码。 Listitem值只是我的偏好。在您的情况下,您的列名将替换TRANS_CD_DESC。
<asp:DropDownList ID="ddlTRANS_CD_DESC" DataSourceID="OBJ_TRANS_CD_DESC" DataValueField="TRANS_CD_DESC"
DataTextField="TRANS_CD_DESC" AppendDataBoundItems="true" runat="server" Text='<%# bind("TRANS_CD_DESC") %>'>
<asp:ListItem Value="">-- Select One --</asp:ListItem>
</asp:DropDownList>
<asp:ObjectDataSource ID="OBJ_TRANS_CD_DESC" runat="server" TypeName="project1.dbqry"
SelectMethod="gProjectCIS"></asp:ObjectDataSource>