2009-09-18 5 views
0

나는 ddlmonth와 ddlday 각각 내 응용 프로그램에 드롭 다운 컨트롤을 가지고 있고 ddlays (1 월, 2 월 ect는 ddlmonth)에 ddldays (1,2, ..... 31)을 추가했습니다. 내 페이지를 실행하십시오. 내 코드를 현재 달과 날짜로 표시합니다. 내 코드입니다.드롭 다운 컨트롤로 작업

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

페이지로드시에도 이것을 넣으십시오. 이

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

처럼은 잘 작동,하지만 난 IsPostBack을에 속하는 getMonth()을 지킬 때 그것은 현재의 월과 일을 표시하지 않습니다. 내가 (드롭 다운) diffent 월 ddlday (dropdwon) diffent 일 (수 없습니다 현재의 월과 일을) ddlmonth 선택하면

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

선물 나는 데이터베이스에 버튼 을 누를 때 현재 월을 삽입하고 pageload에서 IsPostBack을하지 않고 배치 실제로, 나는 달과 날이 다른 을 선택했다. 이것은 나의 코드 다.

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

하지만 난 ddlmont (dropdwon)에서 diffent 몽과 일을 선택하고 나에게 어떤 하나를 도와주세요 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 속성을 사용하지 않고 IsPostBack 함수 아래에 getDate 함수를 두지 않는 것처럼 사용하면

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

링크는 웹 페이지의 라이프 사이클이

  1. 로드
  2. 에 확인
  3. 01 처리
  4. 다시 게시 이벤트 인 것을 알 수 있습니다

여기 중요한 이벤트 핸들러에 대해 언급했는데, 페이지로드 인 Load 이벤트는 페이지 게시물이 백업 될 때마다 발생한다는 것을 알 수 있습니다. 이제 페이지가 귀하의 케이스에있는 버튼과 같은 컨트롤을 통해 다시 게시되면 IsPostBack이 true이고 여기에서 IsPostBack 검사에 페이지로드를 배치하면 페이지로드가 코딩되지 않습니다. 이제 일 및 월 제어의 값을 재설정하려는 경우 데이터베이스에 제출 한 후 함수를 호출 할 수 있습니다.

희망이 도움이 될 것입니다.

+0

Asim saija 내 문제를 이해합니다.하지만 ispostback 현재 월 및 일에 현재 월을 표시하지 않으면 일. 내가 다시 게시하지 않고 배치하면 작동합니다. 나는 다른 월과 일을 선택할 때 현재 선택한 달과 달을 삽입하지 않습니다. –

관련 문제