Make sure you are not re-loading the repeater in the page_load event, 
this can disrupt the post back call.  Remember that the page_load is
called every time the page is posted to.

Wrap anyy binding code in a !Page.IsPostBack (Not Page.IsPostBack in VB).

Here's an example of binding a dropdownlist in a repeater. The
DummyData routines are just for putting data on the form.  The Html
follows...

public class RepeaterDropDown : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.Repeater rpt;
        
                private void Page_Load(object sender, System.EventArgs e)
                {
                        // Put user code to initialize the page here
                        if (!Page.IsPostBack )
                                BindData();
                }

                private void BindData()
                {
                        rpt.DataSource = DummyData();
                        rpt.DataBind();


                }

                private DataTable DummyListData()
                {
                        DataTable dt = new DataTable();
                        dt.Columns.Add("DeptID");
                        dt.Columns.Add("Department");
                        DataRow dr = dt.NewRow();
                        dr["DeptID"] = 111;
                        dr["Department"] = "Finance";
                        dt.Rows.Add(dr);

                        dr = dt.NewRow();
                        dr["DeptID"] = 222;
                        dr["Department"] = "RD";
                        dt.Rows.Add(dr);

                        return dt;
                }

                private DataTable DummyData()
                {

                        DataTable dt = new DataTable();
                        dt.Columns.Add("ID");
                        dt.Columns.Add("StaffMember");
                        dt.Columns.Add("Department");
                        DataRow dr = dt.NewRow();
                        dr["ID"] = 1;
                        dr["StaffMember"] = "Fred";
                        dr["Department"] = "Finance";
                        dt.Rows.Add(dr);

                        dr = dt.NewRow();
                        dr["ID"] = 2;
                        dr["StaffMember"] = "Barney";
                        dr["Department"] = "RD";
                        dt.Rows.Add(dr);

                        dr = dt.NewRow();
                        dr["ID"] = 3;
                        dr["StaffMember"] = "Wilma";
                        dr["Department"] = "Finance";
                        dt.Rows.Add(dr);

                        dr = dt.NewRow();
                        dr["ID"] = 4;
                        dr["StaffMember"] = "Betty";
                        dr["Department"] = "RD";
                        dt.Rows.Add(dr);

                        return dt;
                }

                #region Web Form Designer generated code
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: This call is required by the ASP.NET Web 
Form Designer.
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
                
                /// <summary>
                /// Required method for Designer support - do not modify
                /// the contents of this method with the code editor.
                /// </summary>
                private void InitializeComponent()
                {
                        this.rpt.ItemCreated += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rpt_ItemCreated);
                        this.rpt.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rpt_ItemDataBound);
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion

                private void rpt_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
                {
                        DropDownList ddl;
                        Label l;
                        if (e.Item.ItemType == ListItemType.Item || 
e.Item.ItemType ==
ListItemType.AlternatingItem)
                        {
                                DataRowView drv = (DataRowView)e.Item.DataItem;

                                //fill dropdown
                                ddl = (DropDownList)e.Item.FindControl("ddl");
                                BindDropdown(ddl);
                                //set value
                                
ddl.Items.FindByText(drv["department"].ToString()).Selected = true;
                                
                                l = (Label)e.Item.FindControl("lbl");
                                l.Text = drv["StaffMember"].ToString();
        
                        }
                }

                private void BindDropdown(DropDownList ddl)
                {
                        ddl.DataSource = DummyListData();
                        ddl.DataTextField="Department";
                        ddl.DataValueField = "DeptID";
                        ddl.DataBind();


                }

                private void rpt_ItemCreated(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
                {
                        DropDownList ddl = 
(DropDownList)e.Item.FindControl("ddl");
                        //set a handler
                        ddl.SelectedIndexChanged += new
System.EventHandler(this.ddl_SelectedIndexChanged);

                }

                private void ddl_SelectedIndexChanged(object sender, 
System.EventArgs e)
                {
                        DropDownList ddl = (DropDownList)sender;
                        Debug.WriteLine(ddl.SelectedItem.Text);
                }
        }


<%@ Page language="c#" Codebehind="RepeaterDropDown.aspx.cs"
AutoEventWireup="false" Inherits="CStuff.RepeaterDropDown" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
        <HEAD>
                <title>RepeaterDropDown</title>
                <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 
7.1">
                <meta name="CODE_LANGUAGE" Content="C#">
                <meta name="vs_defaultClientScript" content="JavaScript">
                <meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5";>
        </HEAD>
        <body MS_POSITIONING="GridLayout">
                <form id="Form1" method="post" runat="server">
                        <asp:Repeater id="rpt" runat="server">
                                <ItemTemplate>
                                        <table>
                                                <tr>
                                                        <td>
                                                                <asp:Label 
ID="lbl" Runat="server" /></td>
                                                        <td>
                                                                
<asp:DropDownList ID="ddl" Runat="server"  AutoPostBack="True"/></td>
                                                </tr>
                                        </table>
                                </ItemTemplate>
                        </asp:Repeater>
                </form>
        </body>
</HTML>


On 10/9/05, David Sapp <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I'm have a repeater that has a dropdownlist inside of it.  I know before the 
> page loads that the dropdownlist will have 3 possible item selections but 
> what I cannot figure out is when the user selects one of the 3 values is how 
> to find out which value was selected.   To be clear, there will be one 
> dropdownlist for each row in the repeater.  I have tried using javascript and 
> also tried adding an eventhandler inside the ItemCreated event of the 
> repeater but when I select a value in the dropdownlist (where i have 
> autopostback=true set) the selectedItem eventhandler that I added does not 
> fire.
>
> Thanks
>
> Dave
>
>
> ---------------------------------
>  Yahoo! Music Unlimited - Access over 1 million songs. Try it free.
>
> [Non-text portions of this message have been removed]
>
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
>


--
Dean Fiala
Very Practical Software, Inc
http://www.vpsw.com


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Most low income households are not online. Help bridge the digital divide today!
http://us.click.yahoo.com/cd_AJB/QnQLAA/TtwFAA/saFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 




Reply via email to