Voici un échantillon d'un GridView lié à un liant ObjectDataSource, avec le ObjectDataSource à un DropDownList pour un paramètre. Cela devrait vous aider à démarrer.
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataSourceID="CustomerObjectDataSource"
DataKeyNames="CustomerID"
AllowPaging="True"
AllowSorting="True" AutoGenerateDeleteButton="True"
AutoGenerateEditButton="True" AutoGenerateSelectButton="True"
onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated">
<Columns>
...
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="CustomerObjectDataSource" runat="server"
EnablePaging="True"
MaximumRowsParameterName="totalRows"
StartRowIndexParameterName="firstRow"
TypeName="Northwind.Business.CustomerSource"
DataObjectTypeName="Northwind.Business.CustomerDTO"
SelectMethod="Load"
UpdateMethod="Save"
InsertMethod="Insert"
DeleteMethod="Delete"
SelectCountMethod="CustomerCount"
SortParameterName="sortExpression">
<SelectParameters>
<asp:ControlParameter ControlID="ddlRegion" Name="region"
PropertyName="SelectedValue" />
</SelectParameters>
</asp:ObjectDataSource>
Le FindControl ne regarde que dans un conteneur donné. Mais si c'est le seul outil disponible pour cette situation, alors la solution est de construire une méthode récursive qui traverse la structure de la page et renvoie le contrôle correspondant à l'identifiant fourni. – SynBiotik
hmm ... mais Page.FindControl() ne cherche-t-il pas sur toute la page? – cRichter
"La méthode FindControl peut être utilisée pour accéder à un contrôle dont l'ID n'est pas disponible au moment de la conception.La méthode recherche uniquement le conteneur immédiat ou de niveau supérieur de la page, elle ne recherche pas de façon récursive nommer les conteneurs contenus dans la page Pour accéder aux contrôles dans un conteneur d'attribution de noms subordonné, appelez la méthode FindControl de ce conteneur. " - http://msdn.microsoft.com/en-us/library/31hxzsdw.aspx – SynBiotik