Can’t find control in edit mode in DataList

Last post 07-06-2009 1:46 AM by PeteNet. 2 replies.

Sort Posts:

  • Can’t find control in edit mode in DataList

    07-05-2009, 2:19 PM
    • Member
      point Member
    • rpawluszek
    • Member since 07-05-2009, 6:15 PM
    • Posts 1

    <asp:DataList ID="DataList1" runat="server"
                         oneditcommand="DataList1_EditCommand" >
                    
                <ItemTemplate>
                        <asp:Label ID="lblAddressID" runat="server" Text='<%# Bind("addressID") %>'/>
                        <asp:Label ID="lbl" runat="server" />
                        <asp:Button runat="Server" ID="cmdEdit" CommandName="Edit" Text="Edit"/>
                </ItemTemplate>
                
                <EditItemTemplate>  
                        <asp:TextBox ID="txtAddressID" runat="server" Text='<%# Bind("addressID") %>' BackColor="#FFFF66" />        
                        <asp:Label ID="lbl" runat="server"/>
                        <asp:Button runat="Server" ID="cmdUpdate" CommandName="Update" Text="Update" />
                        <asp:Button runat="Server" ID="cmdCancel" CommandName="Cancel" Text="Cancel"/>
                </EditItemTemplate>
           </asp:DataList>


    private void BindDataList()
        {
            int userId = Convert.ToInt32(ProfileInfo.GetUserID());

            DataList1.DataSource = CatalogAccess.GetAddressByUserID(userId);
            DataList1.DataBind();

            foreach (DataListItem item in DataList1.Items)
            {

                Label lbl = (Label)item.FindControl("lbl");
                lbl.Text = "myLabel";

            }
        }


        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            int userId = Convert.ToInt32(ProfileInfo.GetUserID());
            
            DataList1.EditItemIndex = e.Item.ItemIndex;
            DataList1.DataSource = CatalogAccess.GetAddressByUserID(userId);
            DataList1.DataBind();

            Label lbl = (Label)e.Item.FindControl("lbl") as Label;
            lbl.Text = "edit mode";
        }

    Filed under:
  • Re: Can’t find control in edit mode in DataList

    07-05-2009, 10:09 PM
    Answer
    • All-Star
      91,064 point All-Star
    • vinz
    • Member since 10-05-2007, 3:47 PM
    • Cebu, Philippines
    • Posts 13,699
    • TrustedFriends-MVPs

    Try to access it at ItemDataBound event of DataList:

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
    	if (e.Item.ItemType == ListItemType.EditItem)
    	{
    		Label lb = (Label)e.Item.FindControl("lb");
                    if(lb != null)
                    {
                        lb.Text = "Hello";
                    }
    	}
    }



    Best Regards,
    Vincent Maverick Durano
    SDE|Microsoft MVP - ASP/ASP.NET

    "Code,Beer and Music ~ my way of being a programmer"

  • Re: Can’t find control in edit mode in DataList

    07-06-2009, 1:46 AM
    Answer
    • All-Star
      24,296 point All-Star
    • PeteNet
    • Member since 01-21-2009, 1:15 PM
    • Posts 3,442

    do this change:

    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            int userId = Convert.ToInt32(ProfileInfo.GetUserID());
            
            DataList1.EditItemIndex = e.Item.ItemIndex;
            DataList1.DataSource = CatalogAccess.GetAddressByUserID(userId);
            DataList1.DataBind();
    
            Label lbl = (Label)e.Item.FindControl("lbl") as Label;
            if (lbl != null)
            {
               Label lbl = (Label)DataList1.Items[e.Item.ItemIndex].FindControl("lbl");
               lbl.Text = "edit mode";
            }
        }


    Regards,
    Peter
Page 1 of 1 (3 items)