假设表中有三个dropDownList,我想绑定它。假设在一个dropDown中有Days,在第二个dropDown中有Month和第三个dropDown有一年,现在我想绑定它们以便我可以将它保存在DataBase中。怎么做?
答案 0 :(得分:2)
在我的项目中,我创建了日期的Web用户控件,您可以从中创建填充三个下拉列表供您自己使用的日期。
以下是页面的设计视图(.ascx) -
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WUCDate.ascx.cs" Inherits="WUCDate" %>
<table>
<tr>
<td>
<span style="font-size: 10pt" class="ElearningTotalLabel">
DD</span></td>
<td style="width: 53px">
<span style="font-size: 10pt" class="ElearningTotalLabel">
MM</span></td>
<td style="width: 67px" >
<span style="font-size: 10pt" class="ElearningTotalLabel">
YYYY</span></td>
</tr>
<tr>
<td style="height: 24px" >
<asp:DropDownList ID="ddldate" runat="server" Height="22px" Width="39px" CssClass="ElearningDropdownbox" Font-Bold="True">
</asp:DropDownList></td>
<td style="width: 53px; height: 24px">
<asp:DropDownList ID="ddlmonth" runat="server" Width="55px" CssClass="ElearningDropdownbox" Font-Bold="True">
<asp:ListItem Value="01">Jan</asp:ListItem>
<asp:ListItem Value="02">Feb</asp:ListItem>
<asp:ListItem Value="03">March</asp:ListItem>
<asp:ListItem Value="04">April</asp:ListItem>
<asp:ListItem Value="05">May</asp:ListItem>
<asp:ListItem Value="06">June</asp:ListItem>
<asp:ListItem Value="07">July</asp:ListItem>
<asp:ListItem Value="08">Aug</asp:ListItem>
<asp:ListItem Value="09">Sept</asp:ListItem>
<asp:ListItem Value="10">Oct</asp:ListItem>
<asp:ListItem Value="11">Nov</asp:ListItem>
<asp:ListItem Value="12">Dec</asp:ListItem>
</asp:DropDownList></td>
<td style="width: 67px; height: 24px;">
<asp:DropDownList ID="ddlyear" runat="server" Width="68px" CssClass="ElearningDropdownbox" Font-Bold="True">
</asp:DropDownList></td>
</tr>
</table>
以下是Web用户控件的ascx.cs代码 -
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class WUCDate : System.Web.UI.UserControl
{
//Date user control
int i;
private string currentdate = "01";// Here we can define the minimum date
private string currentmonth = "01";// Here We Can define the minimum month
private string currentyear = "2006";// Here we can define the minimum year
private string date = "01";
private string month = "01";
private string year = "2006";
// fill the date in date dropdown list
void fillDate()
{
string dd;
for (i = 1; i <= 31; i++)
{
if (i <= 9)
{
dd = "0" + i.ToString();
}
else
{
dd = i.ToString();
}
ddldate.Items.Add(dd);
}
}
// fill the date in month dropdown list
void fillMonth()
{
string mm;
for (i = 1; i <= 12; i++)
{
if (i <= 9)
{
mm ="0" + i.ToString();
}
else
{
mm = i.ToString();
}
//ddlmonth.Items.Add(mm);
}
}
// fill the date in date dropdown list
void fillYear()
{
string yy;
for (i = 1900; i <= DateTime.Now.Year+5 ; i++)
{
yy = i.ToString();
ddlyear.Items.Add(yy);
}
}
// create the property for get the date
public string Date
{
get
{
return date;
}
set
{
date = value;
}
}
// create the property for get the current date
public string CurrentDate
{
get
{
return currentdate;
}
set
{
currentdate = value;
}
}
// create the property for get the month
public string Month
{
get
{
return month;
}
set
{
month = value;
}
}
// create the property for get the current month
public string CurrentMonth
{
get
{
return currentmonth;
}
set
{
currentmonth = value;
}
}
// create the property for get the year
public string Year
{
get
{
return year;
}
set
{
year = value;
}
}
// create the property for get the current year
public string CurrentYear
{
get
{
return currentyear;
}
}
//bind the control on page load
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
this.Date = ddldate.SelectedValue;
this.Month = ddlmonth.SelectedValue;
this.Year = ddlyear.SelectedValue;
currentdate = this.Date;
currentmonth = this.Month;
currentyear = this.Year;
display();
}
else
{
fillDate();
fillMonth();
fillYear();
currentdate = this.Date;
currentmonth = this.Month;
currentyear = this.Year;
this.Date = ddldate.SelectedValue;
this.Month = ddlmonth.SelectedValue;
this.Year = ddlyear.SelectedValue;
display();
}
}
// set current date in control
protected void display()
{
ddldate.SelectedValue = this.CurrentDate.ToString();
ddlmonth.SelectedValue = this.CurrentMonth.ToString();
ddlyear.SelectedValue = this.CurrentYear.ToString();
}
}
在此之后我们找到填充的下拉列表 作为你的要求。
答案 1 :(得分:0)
此代码将为您提供简单的1-31,1-12,当前年份到80年前。 不确定这是否正是您正在寻找的,但这是如何动态绑定它们,这样您就不需要对.aspx页面上的所有listitem值进行硬编码。
VB
Dim index As Integer = 0
For index = 0 To 30
Me.ddlDay.Items.Insert(index, New ListItem(index + 1, index + 1))
Next
For index = 0 To 11
Me.ddlMonth.Items.Insert(index, New ListItem(index + 1, index + 1))
Next
For index = DateTime.Now.Year To DateTime.Now.Year - 80 Step -1
Me.ddlYear.Items.Insert((DateTime.Now.Year - index), New ListItem(index, index))
Next
C#
int index = 0;
for (index = 0; index <= 30; index++) {
this.ddlDay.Items.Insert(index, new ListItem(index + 1, index + 1));
}
for (index = 0; index <= 11; index++) {
this.ddlMonth.Items.Insert(index, new ListItem(index + 1, index + 1));
}
for (index = DateTime.Now.Year; index >= DateTime.Now.Year - 80; index += -1) {
this.ddlYear.Items.Insert((DateTime.Now.Year - index), new ListItem(index, index));
}
你可能会更加“发型”,并拥有日期,月份名称,或者拥有01,02,03而不是1,2,3等...... 此外,您可以先将月份下拉,然后从月份选择中动态绑定日期下拉,以便您不允许某人在2月30日输入。