Recently in one of my ASP.NET application I had to create a massive form with lot of drop-down lists and check-box list. Some of the dropdown lists have the same values e.g. Yes, No etc. Now instead of creating to many drop-downlist with same parameters, I thought it would be wise if I can create a custom user control for this common drop-down list and re-use it where ever necessary. I wanted to use this user control inside the formview and bind data for update and insert. Here is what I did –
Here is the very simple code for my user control yesno.ascx page –
<%@ Control Language="C#" ClassName="yesno" %> <script runat="server"> public string DdlSelectedValue { get { return DropDownList1.SelectedValue; } set { DropDownList1.SelectedValue = value; } } </script> <asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem Text="%" Value="" /> <asp:ListItem Text="Yes" Value="Y" /> <asp:ListItem Text="No" Value="N" /> </asp:DropDownList>
The above user control basically set the selected value of the dropdown list using get and set function.
Now register the user control in aspx page like below
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="siteDetails.aspx.vb" Inherits="siteDetails" %> <%@ Register Src="~/controls/yesno.ascx" TagName="yn" TagPrefix="uc" %>
Once you register the control, you can bind the control for formview data binding. Below is the example I did to bind data inside the formview –
<table> <tr><th>Commercial Tours:</th><td> <uc:yn ID="dlCT" runat="server" DdlSelectedValue='<%# Bind("COMMERCIAL_TOURS") %>' /> </td></tr> <tr><th>Interp Available:</th><td> <uc:yn ID="ys1" runat="server" DdlSelectedValue='<%# Bind("INTERP_AVAILABLE") %>' /> </td></tr> <tr><th>Attraction/Site Fees:</th><td> <asp:TextBox ID="txtAttractionFee" runat="server" Text='<%# Bind("ATTRACTION_FEE") %>' Width="450" MaxLength="200" /> </td></tr> </table>
I haveĀ omittedĀ other codes to make it shorter. and it works fine for updating and creating record.
.