(Using Membership ObjectDataSource From MSDN Article)
I'm doing a project where I have lots of DropDownList's on a page and want a simple way to set the initial values based on some known value. The DropDownLists are retrieved using ObjectDataSource but I don't want the first value displayed. I wrestled some with how to do this using page_load or page_prerender but didn't come up with good solutions. I did finally
decide that programming the databound event of the dropdownlist was probably the best way to go.
The solution is pasted below. The MembershipUtilities.MembershipODS c# code can be downloaded from MSDN or on my web site at the following location.
https://peterkellner.net/2006/01/09/microsoft-aspnet-20-memberrole-management-with-iis/.
<%@ Page Language=”C#” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<script runat=”server”> protected void DropDownListUser_DataBound(object sender, EventArgs e)
{ DropDownListUser.SelectedIndex = DropDownListUser.Items.IndexOf (DropDownListUser.Items.FindByValue(Context.User.Identity.Name)); }
</script>
<html xmlns=”http://www.w3.org/1999/xhtml” > <head runat=”server”> <title>DropDownList Initialize</title> </head> <body> <form id=”form1″ runat=”server”> <div> <asp:DropDownList ID=”DropDownListUser” runat=”server” DataSourceID=”ObjectDataSourceUser” DataTextField=”UserName” DataValueField=”UserName” OnDataBound=”DropDownListUser_DataBound”> </asp:DropDownList> <asp:ObjectDataSource ID=”ObjectDataSourceUser” runat=”server” SelectMethod=”GetMembers” TypeName=”MembershipUtilities.MembershipUserODS”> <SelectParameters> <asp:Parameter Name=”sortData” Type=”String” /> </SelectParameters> </asp:ObjectDataSource> </div> </form> </body> </html>