2017-09-06 4 views
-2

header_text가있는 SQL에서 데이터를 가져옵니다. Last_Term 및 Current_Term 선택한 드롭 다운 값으로 변경하려면 해당 header_text가 필요합니다.헤더 텍스트가 변경되지 않습니다. C#

<asp:DropDownList ID="ENRDropDownList" AutoPostBack="True" OnSelectedIndexChanged="ENRDropDownList_OnSelectedIndexChanged" 
           runat="Server"> 
           <asp:ListItem Text="Fall 2016" Value="20172" /> 
           <asp:ListItem Text="Fall 2015" Value="20162" /> 
           <asp:ListItem Text="Fall 2014" Value="20152" /> 
           <asp:ListItem Text="Fall 2013" Value="20142" /> 
           <asp:ListItem Text="Fall 2012" Value="20132" /> 
           <asp:ListItem Text="Fall 2011" Value="20122" /> 
           <asp:ListItem Text="Fall 2010" Value="20112" /> 
           <asp:ListItem Text="Fall 2009" Value="20102" /> 
          </asp:DropDownList> 

우리가 2016 가을 선택하면, Current_Term 2016 년 가을로 변경해야하며, Last_Term 2015 (동적) 가을로 변경해야 가정하자.

지금까지 나는이 논리를 작성하여 현재와 마지막 용어가 적절히 변경되도록했습니다.

protected void Page_Load(object sender, EventArgs e) 
    { 

     //List<something> clist = new List<something>();s 
     //clist.Add(new something { cyear = 2016 , pyear = 2015}); 
     if (!Page.IsPostBack) 
     { 

      if (Session["term"] != null) 
      { 
       ENRDropDownList.SelectedValue = Session["term"].ToString(); 
      } 

      caption.Text = "Comparison of Fall Enrollment Numbers - " + ENRDropDownList.SelectedItem; 
      //MyGridView1.Columns[1].HeaderText = clist.Find(new something { cyear = 2015 }); 
      MyGridView1.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView2.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView3.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView4.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView5.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView6.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView7.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView8.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView9.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView10.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 
      MyGridView11.Columns[2].HeaderText = ENRDropDownList.SelectedItem.Text; 

     } 
    } 


    //string drop = Nameofthedropdownlist.Value; 
    // datatable.Coloumn["Current_Term"].ColoumnName= drop; 


    protected void ENRDropDownList_OnSelectedIndexChanged(Object sender, EventArgs e) 
    { 
     caption.Text = "Comparison of Fall Enrollment Numbers - " + ENRDropDownList.SelectedItem; 
     Session["term"] = ENRDropDownList.SelectedValue; 
     MyGridView1.DataBind(); 
     MyGridView2.DataBind(); 
     MyGridView3.DataBind(); 
     MyGridView4.DataBind(); 
     MyGridView5.DataBind(); 
     MyGridView6.DataBind(); 
     MyGridView7.DataBind(); 
     MyGridView8.DataBind(); 
     MyGridView9.DataBind(); 
     MyGridView10.DataBind(); 
     MyGridView11.DataBind(); 

     string dropValue = ENRDropDownList.SelectedItem.Text; 
     string drop = ENRDropDownList.SelectedItem.Value.Remove(4,1); 
     int previousvalue = Convert.ToInt32(drop) - 2; 


     MyGridView1.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView2.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView3.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView4.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView5.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView6.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView7.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView8.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView9.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView10.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView11.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     //MyGridView1.Columns[1].HeaderText = dropValue; 
     // MyGridView1.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 
     MyGridView1.Columns[2].HeaderText = dropValue; 
     MyGridView2.Columns[2].HeaderText = dropValue; 
     MyGridView3.Columns[2].HeaderText = dropValue; 
     MyGridView4.Columns[2].HeaderText = dropValue; 
     MyGridView5.Columns[2].HeaderText = dropValue; 
     MyGridView6.Columns[2].HeaderText = dropValue; 
     MyGridView7.Columns[2].HeaderText = dropValue; 
     MyGridView8.Columns[2].HeaderText = dropValue; 
     MyGridView9.Columns[2].HeaderText = dropValue; 
     MyGridView10.Columns[2].HeaderText = dropValue; 
     MyGridView11.Columns[2].HeaderText = dropValue; 

     //string last_Year_Value = ENRDropDownList.SelectedValue 

     //Console.WriteLine(dropValue); 


    } 

페이지를로드 할 때 Current_Term 만 선택한 연도로 변경되었지만 last_Term은 변경되지 않은 위치에서로드됩니다.

Last_term not changed

하지만, 내가 다른 연도를 선택하면, 다음 Last_Term이 변화하고있다. 페이지를로드 할 때 last_term이 나타나도록이 문제를 어떻게 해결합니까?

+0

페이지로드에서 ddl 변경 이벤트를 호출하거나 (내가 제안하지 않겠습니다) 모든 것을 채우는 두 위치에서 호출하는 함수를 작성해야합니다. 따라서 두 개의 섹션에서 수행되는 모든 그리드 속성을 가지는 대신 하나의 작업으로 수행하십시오. – MaCron

답변

0
MyGridView1.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue); 

HeaderRow.Cells로 교체

after i select another year last_term is changing

그것은 확실히 그리드의 열 머리글을 변경합니다는 .text

MyGridView1.HeaderRow.Cells[1].Text =ddl1.SelectedItem.Value; 

을 [셀의 인덱스는 변경 될 수 있습니다].