<body>
<formid="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</div></form></body>
Then, to the code-behind page's Page_Load method, create a new DataTable.
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();//create a new DataTable
}
Then, create DataColumn object "countryColumn" and set its properties.
DataColumn countryColumn = new DataColumn(); //create a new DataColumn
countryColumn.ColumnName = "Country"; //set the column name of the DataColumn
countryColumn.DataType = typeof(string); //set the data type of the DataColumncountryColumn.MaxLength = 25; //set the length of the DataColumn
Then, add the DataColumn to the DataTable.
dt.Columns.Add(countryColumn); //addDataColumn to DataTable
Now, the DataColumn countryColumn has been added to the DataTable dt. Now, create another DataColumn "capitalColumn" and set its properties.
DataColumn capitalColumn = new DataColumn();//create a new DataColumn
capitalColumn.ColumnName = "Capital"; //set the column name of the DataColumncapitalColumn.DataType = typeof(string);//set the data type of the DataColumn
capitalColumn.MaxLength = 25; //set the length of the DataColumn
Then, add the capitalColumn to the DataTable dt.
dt.Columns.Add(capitalColumn); //add DataColumn to DataTable
Now, the DataColumn "capitalColumn" has been added to the DataTable. Now, two DataColumns have been added to the DataTable dt.
Note that, we can add more columns of data to the DataTable but we will not be able to display it in the DropDownList. The DropDownList has two properties - "DataTextField" and DataValueField" that can binded to the DropDownList. The DataTextField property refers to the text property that is visible on the page while the DataValueField property refers to the value of the associated text.
Now, add few rows to DataTable dt.
dt.Rows.Add("Australia", "Sydney"); //add DataRow to DataTable
dt.Rows.Add("France", "Paris"); //add DataRow to DataTabledt.Rows.Add("Italy", "Rome"); //add DataRow to DataTable
Now, set the DataSource property of the DropDownList to DataTable.
DropDownList1.DataSource = dt; //set DataSource property of DropDownList
Then, set the DataTextField and DataValueField of the DropDownList.
DropDownList1.DataTextField = dt.Columns[0].ToString();//set DataTextField to first column(countryColumn) of dt
DropDownList1.DataValueField = dt.Columns[1].ToString();//set DataTextField to second column (capitalColumn) of dt
Then, bind the DataTable to the DropDownList.
DropDownList1.DataBind();//bind data to DropDownList
Now, when the page is run, the page will display a drop down with the text showing country and it's value showing capital. The page source will look like below.
<div> <select name="DropDownList1" id="DropDownList1"> <option value="Sydney">Australia</option> <option value="Paris">France</option> <option value="Rome">Italy</option> </select> </div>
The complete Page_Load method is below.
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();//create a new DataTable
DataColumn countryColumn = new DataColumn();// create a new DataColumn
countryColumn.ColumnName = "Country";//set the column name of the DataColumn
countryColumn.DataType = typeof(string); //set the data type of the DataColumncountryColumn.MaxLength = 25; //set the length of the DataColumn
dt.Columns.Add(countryColumn); //add DataColumn to DataTable
DataColumn capitalColumn = new DataColumn();// create a new DataColumn
capitalColumn.ColumnName = "Capital"; //set the column name of the DataColumncapitalColumn.DataType = typeof(string); //set the data type of the DataColumncapitalColumn.MaxLength = 25; //set the length of the DataColumn
dt.Columns.Add(capitalColumn); //add DataColumn to DataTable
dt.Rows.Add("Australia", "Sydney"); //add DataRow to Datatabledt.Rows.Add("France", "Paris"); //add DataRow to Datatabledt.Rows.Add("Italy", "Rome"); //add DataRow to Datatable
DropDownList1.DataSource = dt; //set DataSource property of DropDownList
DropDownList1.DataTextField = dt.Columns[0].ToString(); //set DataTextField to first column(countryColumn) of dt
DropDownList1.DataValueField = dt.Columns[1].ToString(); //set DataTextField to second column (capitalColumn) of dt
DropDownList1.DataBind(); //bind data to DropDownList
}
Also, view how to bind GridView to DataTable or home.