2016-11-11 7 views
1

私はasp dropboxを使用してdropboxをdropboxに書き込んでいます。ボタンをクリックしたときの値はボタンの呼び出し時に最初のpageloadコード呼び出しとpageloadでデータベース からDropboxのコードがpageloadのためにボタンクリック後にDropboxの値が変更されました

protected void Page_Load(object sender, EventArgs e) 
     { 

     var q = from u in db.tbl_Subject select u; 
     Paper_Subject.DataSource=q.ToList(); 
     Paper_Subject.DataTextField = "Subject_Name"; 
     Paper_Subject.DataValueField = "Subject_Id"; 
     Paper_Subject.DataBind(); 


     for (int i = 0; i <= 12;i++) 
     { 
      if(i<10) 
       Paper_Duration_Hour.Items.Add("0"+i.ToString()); 
      else 
       Paper_Duration_Hour.Items.Add(i.ToString()); 
     } 
     for (int i = 0; i <= 60; i=i+5) 
     { 
      if(i<10) 
       Paper_Duration_Minute.Items.Add("0"+i.ToString()); 
      else 
       Paper_Duration_Minute.Items.Add(i.ToString()); 
     } 
    } 
protected void SaveData() 
    { 
     int PaperDurationHour; 
     int PaperDurationMinute; 
     int TeacherId; 
     int SubjectId; 
     tb.Paper_Name = PaperName.Text; 
     if (int.TryParse(Paper_Duration_Hour.Text, out PaperDurationHour)) 
     { 
      tb.Paper_Time_Hours = PaperDurationHour; 
     } 
     if (int.TryParse(Paper_Duration_Minute.Text, out PaperDurationMinute)) 
     { 
      tb.Paper_Time_Minute = PaperDurationMinute; 
     } 
     string s1; 
     s1 = Paper_Subject.SelectedItem.Text; 
     var q = from u in db.tbl_Subject where u.Subject_Name.Equals(s1) select u; 
     if (q.Count() > 0) 
     { 
      SubjectId = q.FirstOrDefault().Subject_Id; 
      tb.Subject_Id = SubjectId; 
     } 
     if (int.TryParse(Session["TeacherID"].ToString(), out TeacherId)) 
     { 
      tb.Teacher_Id = TeacherId; 
     } 
     db.tbl_Paper.Add(tb); 
     db.SaveChanges(); 
    } 
} 

ボタンコールが、私はDropboxのの選択された値を取得したいが、私は

答えて

0

をpageloadによる最初の値を取得するたびに、私はときにのみ、あなたのDropboxを埋める提案していますページの最初の読み込み、およびデータが変更されたとき。ページが最初に読み込まれるときにDropboxを塗りつぶすには、プロパティーIsPostBackを使うことができます。これは最初にページを読み込んだときにのみfalseであるため、最初にページを読み込んだときに(!IsPostBack)というステートメントがtrueを返します。したがって、次の操作を実行できます。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     //code here will be only executed the first time the page is loaded 
     var q = from u in db.tbl_Subject select u; 
     Paper_Subject.DataSource=q.ToList(); 
     Paper_Subject.DataTextField = "Subject_Name"; 
     Paper_Subject.DataValueField = "Subject_Id"; 
     Paper_Subject.DataBind(); 

     for (int i = 0; i <= 12;i++) 
     { 
      if(i<10) 
       Paper_Duration_Hour.Items.Add("0"+i.ToString()); 
      else 
       Paper_Duration_Hour.Items.Add(i.ToString()); 
     } 
     for (int i = 0; i <= 60; i=i+5) 
     { 
      if(i<10) 
       Paper_Duration_Minute.Items.Add("0"+i.ToString()); 
      else 
       Paper_Duration_Minute.Items.Add(i.ToString()); 
     } 
    } 
    //code here will be executed every time page loaded 
} 

このコードは、ページを初めて読み込んだときにのみ実行されます。

+0

ありがとうございますSir @YuriKhordalさんの仕事が正しく... –

関連する問題