DropDownList in FormView binding

后端 未结 3 1884
情深已故
情深已故 2021-02-13 23:34

I want to bind dropdownlist to List, in code behind.

 

        
相关标签:
3条回答
  • 2021-02-13 23:45

    well i was facing a similar problem. i noticed that you were trying to add it to and not which can be a major cause that you did not see it.

    i have however worked on both the solutions provided above and found this worked for me :-

    <EditItemTemplate>
    <asp:DropDownList ID="ddlStream" runat="server" SelectedValue='<%# Bind("Stream") %>'>
                        <asp:ListItem>Common</asp:ListItem>
                        <asp:ListItem>Mechanical</asp:ListItem>
                        <asp:ListItem>Electronics</asp:ListItem>
                        </asp:DropDownList>
    </EditItemTemplate>
    
    <ItemTemplate>
    <asp:Label runat="server" id="something" text='<%# Eval("Stream")%>'/>
    </ItemTemplate>
    

    hope this helpes you.

    0 讨论(0)
  • 2021-02-13 23:47

    Made an example which will set the dropdown in the DataBound event.
    Here is the markup
    The way to use the ddl, is to find it with findcontrol() during DataBound event.
    When you have the control in the DataBound event, you can also bind the dropdown to your List<>
    Hope this helps.

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
    
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
        <html xmlns="http://www.w3.org/1999/xhtml" >
        <head runat="server">
            <title>Untitled Page</title>
        </head>
        <body>
            <form id="form1" runat="server">
            <div>
    
            </div>
            <asp:FormView ID="FormView1" runat="server" ondatabound="FormView1_DataBound">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server">
                        <asp:ListItem>One</asp:ListItem>
                        <asp:ListItem>Two</asp:ListItem>
                        <asp:ListItem>Three</asp:ListItem>
                    </asp:DropDownList>
    
                </ItemTemplate>
            </asp:FormView>
            </form>
        </body>
        </html>
    

    Here is the code behind:

    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                List<string> list = new List<string>();
                list.Add("Some");
                list.Add("Other");
    
                FormView1.DataSource = list; //just to get the formview going
    
                FormView1.DataBind(); 
    
            }
    
            protected void FormView1_DataBound(object sender, EventArgs e)
            {
                DropDownList ddl = null;
                if(FormView1.Row != null)
                    ddl = (DropDownList) FormView1.Row.FindControl("DropDownList1");
                ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue("Two"));
            }
        }
    }
    
    0 讨论(0)
  • 2021-02-14 00:11

    You can populate the DropDownList with another DataSource, assuming the valid values are in the database. Check out this video:

    http://msdn.microsoft.com/en-us/data/cc546554.aspx

    It's using an EntityDataSource instead of an ObjectDataSource, but the principle should still work.

    If you want a "(none)" type option for null, see section "Converting Null in Template Fields" on this page:

    http://msdn.microsoft.com/en-us/library/ms366709.aspx

    Specifically:

    <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2"
        DataTextField="Name" DataValueField="EmployeeID"
        SelectedValue='<%# Bind("ReportsTo") %>' AppendDataBoundItems="True">
            <asp:ListItem Selected="True" Value="">(none)</asp:ListItem>
    </asp:DropDownList>
    

    Notice the the "AppendDataBoundItems" attribute and the "asp:ListItem" element.

    0 讨论(0)
提交回复
热议问题