C# ASP.NET dropdownlist绑定不起作用

C# ASP.NET dropdownlist绑定不起作用,c#,asp.net,data-binding,dropdown,C#,Asp.net,Data Binding,Dropdown,在ASP.NET中,我试图将dropdownlist的文本与数据库中的数据绑定。在列表中,我得到了用于该特定列的所有正确值,但显示的值与数据库中的值不一致。对于值B,正确显示该值,但对于其他值,则显示值A。 有人认为这是个好主意吗 编辑 DropDownList用作Gridview中的列,我尝试以多种方式添加值。对于值为“Lijndienst”的列,它工作正常,但对于所有其他列,它只显示“绿色交通” <asp:TemplateField HeaderText="Transport">

在ASP.NET中,我试图将dropdownlist的文本与数据库中的数据绑定。在列表中,我得到了用于该特定列的所有正确值,但显示的值与数据库中的值不一致。对于值B,正确显示该值,但对于其他值,则显示值A。 有人认为这是个好主意吗

编辑

DropDownList用作Gridview中的列,我尝试以多种方式添加值。对于值为“Lijndienst”的列,它工作正常,但对于所有其他列,它只显示“绿色交通”

 <asp:TemplateField HeaderText="Transport">
        <ItemTemplate>
            <asp:Label ID="lblTransport" runat="server" Text='<%# Bind("Transport") %>' Visible="false" ></asp:Label>
            <asp:DropDownList ID="ddlTransport" runat="server" Width="150px" Height="20px" >
                <%--<asp:ListItem Text="Geen transport"></asp:ListItem>
                <asp:ListItem Text="Lijndienst"></asp:ListItem>
                <asp:ListItem Text="Intercity"></asp:ListItem>
                <asp:ListItem Text="Firma Piping"></asp:ListItem>
                <asp:ListItem Text="Firma E&I"></asp:ListItem>
                <asp:ListItem Text="Zwaar"></asp:ListItem>--%>
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>

 DropDownList ddlTransport = (e.Row.FindControl("ddlTransport") as DropDownList);
        Label lblTransport = (e.Row.FindControl("lblTransport") as Label);
        ddlTransport.DataSource = GetData("SELECT Transport FROM Transport", "Transport");
        ddlTransport.DataTextField = "Transport";
        ddlTransport.DataValueField = "Transport";
        ddlTransport.DataBind();
        ddlTransport.SelectedValue = lblTransport.Text;

假设您的数据位于数据表中,请尝试以下操作

var dt = new DataTable();
var ddl = new DropDownList(); //represents your drop down list 

foreach (DataRow row in dt.Rows)
{
    var li = new ListItem();
    li.Text = row["text to show"].ToString();
    li.Value = row["value of dropdown item"].ToString();
    ddl.Items.Add(li);
}
用问题代码回答澄清后的编辑

这是一个我拥有的数据网格,里面有一个下拉列表项,这也是一个工作示例。虽然asnswer是VB,但它应该给你足够的时间来使用它

<asp:TemplateColumn HeaderText="Switching to Product" HeaderStyle-CssClass="centre" ItemStyle-CssClass="centre">
<ItemTemplate>
    <asp:DropDownList runat="server" Width="200px" CssClass="centre ddlMoveToProduct" ID="ddlProduct" AutoPostBack="True" OnSelectedIndexChanged="ddlProduct_Change">
    </asp:DropDownList>
</ItemTemplate>
如果您想要一个C示例,请告诉我,我会为您编码\转换它

编辑2

这是c版本,文本和值都是相同的,但是所有代码段中都有足够的代码,可以添加一个包含文本和值的新列表项

foreach (DataGridItem item in dgSuitableSwitch.Items)
{
    DropDownList ddlProduct = (DropDownList)item.FindControl("ddlSSProduct");

    ddlProduct.Items.Add("-- Select Product");
    ddlProduct.Items.Add("Premium Investments");
    ddlProduct.Items.Add("Growth Portfolio (OEIC)");
    ddlProduct.Items.Add("Income Portfolio (OEIC)");
    ddlProduct.Items.Add("Index Linked Savings Bond");
    ddlProduct.Items.Add("Fixed Term Investment");
    ddlProduct.Items.Add("Cash");
}
编辑3

将项目添加到下拉列表时,请使用与此类似的代码

ddl.Items.Add(new ListItem {Text = "your text here", Value = "your value here"})

需要更多关于这个问题的细节,如果可能的话,请提供代码。请向我们展示您的代码。您可以发布用于从数据库获取数据的代码吗?是否包含下拉列表的html代码?下拉列表是Gridview的一部分。这不仅仅是用值填充。现在我们有了一些代码,给我几分钟时间,我会编辑我的答案。我更喜欢C,但这样它会用值填充下拉列表。这很好,但是显示数据库的值不符合要求。你能用你的代码更新你的问题吗?我来看看是怎么回事
ddl.Items.Add(new ListItem {Text = "your text here", Value = "your value here"})