2010-09-20 4 views
1

Supposons qu'il y ait trois dropDownList dans une table et que je veuille les lier. Disons que dans un dropDown il y a Days, dans la seconde dropDown il y a Month et dans la troisième dropDown il y a l'année et maintenant je veux les lier pour que je puisse les sauvegarder dans DataBase. Comment faire ça?Comment lier des données dans asp.net?

+0

si elles contiennent déjà des données, par exemple Jours, Mois et Année - alors de quoi avez-vous besoin pour les lier? – InSane

Répondre

2

Dans mon projet, j'avais créé le contrôle de l'utilisateur Web pour la date d'où vous pouvez prendre une idée pour remplir la liste déroulante trois pour votre propre usage.

Voici le point de vue de la conception de la page (.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> 

Voici le code ascx.cs pour le contrôle utilisateur Web -

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(); 
    } 
} 

Après cela, nous trouvons le rempli liste déroulante en tant que votre condition.

+1

naval, il devrait y avoir une méthode pour lier le nombre exact de jours avec chaque mois. nous pouvons coder en dur mois et année, mais les jours ne sont pas 31 pour chaque mois. – AsifQadri

+0

Ya tahnks avec qui je suis en accord – naval

0

Ce code vous donnera un simple 1-31, 1-12, l'année en cours à 80 ans. Vous ne savez pas si c'est exactement ce que vous recherchez, mais vous pouvez les lier dynamiquement pour ne pas avoir à coder en dur toutes les valeurs listitem sur la page .aspx.

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)); 
} 

Vous pourriez être un peu plus "colombophile" avec cela et avoir le jour, les noms de mois, ou ont 01, 02, 03 au lieu de 1, 2, 3, etc ... Vous pouvez également mettre le mois en premier, puis lier dynamiquement le jour à partir de la sélection du mois pour ne pas permettre à quelqu'un d'entrer au 30 février par exemple.

Questions connexes