I hope this help:
DropDownList dd = this.Master.FindControl("DropDownList" + i) as DropDownList;
Update:
This is a simple project that works without any problem:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication1.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
<asp:Button ID="Button1" runat="server"
Text="Button" OnClick="Button1_Click1" />
<asp:Label ID="Label1" runat="server" Text="MasterLabel"></asp:Label>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
</html>
using System;
using System.Web;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Button1_Click1(object sender, EventArgs e)
{
DropDownList dd = (DropDownList)FindControl("DropDownList"+1);
string drpDLstVal = dd.SelectedValue.ToString();
Label1.Visible = true;
Label1.Text = drpDLstVal;
}
}
}
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click1" />
<asp:Label ID="Label2" runat="server" Text="PageLabel"></asp:Label>
</asp:Content>
using System;
using System.Web;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click1(object sender, EventArgs e)
{
DropDownList dd = (DropDownList)Master.FindControl("DropDownList"+1);
string drpDLstVal = dd.SelectedValue.ToString();
Label2.Visible = true;
Label2.Text = drpDLstVal;
}
}
}