2009-09-18 4 views
0

У меня есть выпадающие элементы управления в моем приложении, а именно ddlmonth и ddlday соответственно, и я добавил месяцы (январь, февральский ect в ddlmonth) и дни, добавленные в ddldays (1,2, ..... 31), когда i запустите мою страницу, я показываю текущий месяц и дату, это мой кодРабота с выпадающими элементами управления

public void getMonth() { 
     ddlmonth.SelectedIndex = DateTime.Now.Month -1; 
     ddldate.SelectedIndex = DateTime.Now.Day - 1; 
    } 

и я размещаю это на странице. как этот

protected void Page_Load(object sender, EventArgs e){ 
     getMonth(); 
    } 

он работает нормально, но когда я держать getMonth() в IsPostBack он не отображает текущий месяц и день.

protected void Page_Load(object sender, EventArgs e) { 
     if(!isPostback) { 
     getMonth(); 
     } 
    } 

присутствует я место без IsPostBack в PageLoad, когда я выбираю ddlmonth (выпадающий список) diffent месяц и ddlday (dropdwon) diffent день (не текущий месяц и день), когда я нажимаю кнопку в базе данных он вставляет текущий месяц и день, на самом деле я выбираю разный месяц и день , и это мой код.

protected void btnEvent_Click(object sender, EventArgs e){ 
       clsevents.Month = ddlmonth.SelectedValue.ToString(); 
       clsevents.Day = ddldate.SelectedValue.ToString(); 
    } 

, но в базе данных он вставляет текущий Монт и день, когда я выбираю diffent Монт день и в ddlmont (dropdwon) и ddlday пожалуйста, помогите мне один.

+0

Почему вы опубликовали такой же вопрос вместо того, чтобы обновлять его? http://stackoverflow.com/questions/1438395/dropdown-controls-in-asp-net –

ответ

0

Вот мой полный пример кода, первым приведен код

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      getMonth(); 
     } 
    } 

    private void getMonth() 
    { 
     ddlDay.Text = DateTime.Now.Day.ToString(); 
     ddlMonth.Text = DateTime.Now.Month.ToString(); 
    } 

    protected void btnClick_Click(object sender, EventArgs e) 
    { 
     string strDate = ddlDay.Text + "/" + ddlMonth.SelectedItem.Value + "/09"; 
     getMonth(); 
    } 

А вот мой HTML.

<asp:DropDownList ID="ddlDay" runat="server" CssClass="inputfield"> 
         <asp:ListItem Text="1"></asp:ListItem> 
         <asp:ListItem Text="2"></asp:ListItem> 
         <asp:ListItem Text="3"></asp:ListItem> 
         <asp:ListItem Text="4"></asp:ListItem> 
         <asp:ListItem Text="5"></asp:ListItem> 
         <asp:ListItem Text="6"></asp:ListItem> 
         <asp:ListItem Text="7"></asp:ListItem> 
         <asp:ListItem Text="8"></asp:ListItem> 
         <asp:ListItem Text="9"></asp:ListItem> 
         <asp:ListItem Text="10"></asp:ListItem> 
         <asp:ListItem Text="11"></asp:ListItem> 
         <asp:ListItem Text="12"></asp:ListItem> 
         <asp:ListItem Text="13"></asp:ListItem> 
         <asp:ListItem Text="14"></asp:ListItem> 
         <asp:ListItem Text="15"></asp:ListItem> 
         <asp:ListItem Text="16"></asp:ListItem> 
         <asp:ListItem Text="17"></asp:ListItem> 
         <asp:ListItem Text="18"></asp:ListItem> 
         <asp:ListItem Text="19"></asp:ListItem> 
         <asp:ListItem Text="20"></asp:ListItem> 
         <asp:ListItem Text="21"></asp:ListItem> 
         <asp:ListItem Text="22"></asp:ListItem> 
         <asp:ListItem Text="23"></asp:ListItem> 
         <asp:ListItem Text="24"></asp:ListItem> 
         <asp:ListItem Text="25"></asp:ListItem> 
         <asp:ListItem Text="26"></asp:ListItem> 
         <asp:ListItem Text="27"></asp:ListItem> 
         <asp:ListItem Text="28"></asp:ListItem> 
         <asp:ListItem Text="29"></asp:ListItem> 
         <asp:ListItem Text="30"></asp:ListItem> 
         <asp:ListItem Text="31"></asp:ListItem> 
        </asp:DropDownList>&nbsp; 
        <asp:DropDownList ID="ddlMonth" runat="server"> 
         <asp:ListItem Value="1" Text="January"></asp:ListItem> 
         <asp:ListItem Value="2" Text="February "></asp:ListItem> 
         <asp:ListItem Value="3" Text="March"></asp:ListItem> 
         <asp:ListItem Value="4" Text="April"></asp:ListItem> 
         <asp:ListItem Value="5" Text="May"></asp:ListItem> 
         <asp:ListItem Value="6" Text="June"></asp:ListItem> 
         <asp:ListItem Value="7" Text="July"></asp:ListItem> 
         <asp:ListItem Value="8" Text="August"></asp:ListItem> 
         <asp:ListItem Value="9" Text="September"></asp:ListItem> 
         <asp:ListItem Value="10" Text="October"></asp:ListItem> 
         <asp:ListItem Value="11" Text="November"></asp:ListItem> 
         <asp:ListItem Value="12" Text="December"></asp:ListItem> 
        </asp:DropDownList> 
        <asp:Button ID="btnClick" Text="Click" runat="server" CssClass="Button" OnClick="btnClick_Click" /> 

Извините, я не вставлял весь html. Надеюсь, вы получите свое решение, так как я тестировал код выше.

1

Я проверил код. Пожалуйста, попробуйте код ниже и проверьте.

Default.aspx.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 Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      DataTable dt = new DataTable(); 
      dt.Columns.Add("val"); 

      DataRow dr; 
      for (int i = 1; i <= 31; i++) 
      { 
       dr = dt.NewRow(); 
       dr[0] = i; 
       dt.Rows.Add(dr); 
      } 
      dt.AcceptChanges(); 
      ddlDay.DataTextField = "val"; 
      ddlDay.DataValueField = "val"; 
      ddlDay.DataSource = dt; 
      ddlDay.DataBind(); 
      getMonth(); 
     } 
    } 
    public void getMonth() 
    { 
     ddlMonth.SelectedIndex = DateTime.Now.Month - 1; 
     ddlDay.SelectedIndex = DateTime.Now.Day - 1; 
    } 
    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     lblSelectedDate.Text = ddlDay.SelectedValue + "/" + ddlMonth.SelectedValue + "/09"; 
    } 

} 

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      day : 
      <asp:DropDownList ID="ddlDay" runat="server"> 
      </asp:DropDownList> 
      Month: 
      <asp:DropDownList ID="ddlMonth" runat="server"> 
       <asp:ListItem Value="1" Text="Jan" Selected="True"></asp:ListItem> 
       <asp:ListItem Value="2" Text="Feb"></asp:ListItem> 
       <asp:ListItem Value="3" Text="Mar"></asp:ListItem> 
       <asp:ListItem Value="4" Text="Apr"></asp:ListItem> 
       <asp:ListItem Value="5" Text="May"></asp:ListItem> 
       <asp:ListItem Value="6" Text="Jun"></asp:ListItem> 
       <asp:ListItem Value="7" Text="Jul"></asp:ListItem> 
       <asp:ListItem Value="8" Text="Aug"></asp:ListItem> 
       <asp:ListItem Value="9" Text="Sep"></asp:ListItem> 
       <asp:ListItem Value="10" Text="Oct"></asp:ListItem> 
       <asp:ListItem Value="11" Text="Nov"></asp:ListItem> 
       <asp:ListItem Value="12" Text="Dec"></asp:ListItem> 
      </asp:DropDownList> 
      <br /> 
      <asp:Button ID="btnSubmit" runat="server" Text="Save" OnClick="btnSubmit_Click" /> 
      <hr /> 
      <asp:Label ID="lblSelectedDate" runat="server"></asp:Label> 
     </div> 
    </form> 
</body> 
</html> 

Пожалуйста, проверьте его.

+0

жаль, что он не работает –

0

В соответствии со сценарием, указанным в приведенном выше коде, я понимаю, что вы хотите сохранить выбранную пользователем дату в базе данных и затем сбросить текущее значение до месяца и дня ??? Вы должны использовать свойство IsPostBack так, как если бы вы его не использовали, и не помещаете функцию getDate в функцию IsPostBack, тогда он сбросит выбранное пользователем значение на текущий месяц и день, если вы посмотрите на

http://msdn.microsoft.com/en-us/library/ms178472.aspx

ссылку вы можете увидеть, что жизненный цикл веб-страницы является

  1. нагрузки
  2. Validation
  3. Postback обработки
  4. 01 событий

Здесь я упоминал Важный обработчик событий, вы можете видеть, что событие загрузки, которое является загрузкой страницы, запускается каждый раз при повторном обращении к странице. Теперь, если страница отправляется назад любой из кнопок типа управления в вашем случае, то IsPostBack является истинным, и здесь вы указываете, что загрузка страницы не выполняется, если вы поместите ее в проверку IsPostBack. Теперь, если вы хотите сбросить значение элемента управления день и месяц, вы можете вызвать свою функцию после отправки в базу данных.

Надеюсь, это вам поможет.

+0

Asim saija вы понимаете мою проблему, но если я помещаю в ispostback текущий месяц и день, не показывающий текущий месяц и день. если я размещаю без обратной передачи, он работает. когда я выбираю разные месяц и день, он вставляет текущий месяц и день, которые я не выбрал. –

Смежные вопросы