如何在asp.net中绑定数据?

时间:2010-09-20 07:39:31

标签: asp.net

假设表中有三个dropDownList,我想绑定它。假设在一个dropDown中有Days,在第二个dropDown中有Month和第三个dropDown有一年,现在我想绑定它们以便我可以将它保存在DataBase中。怎么做?

2 个答案:

答案 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日输入。