【问题标题】:header text not changing c#标题文本没有改变c#
【发布时间】:2017-09-06 16:18:45
【问题描述】:

我从具有 header_text 的 SQL 获取数据:Last_Term 和 Current_Term 我需要将这些 header_text 更改为选定的下拉值。

<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>

假设如果我们选择 Fall 2016,Current_Term 应更改为 Fall 2016,Last_Term 应更改为 Fall 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。

after i select another year last_term is changing

【问题讨论】:

  • 您需要从页面加载中调用 ddl 更改事件(我不建议这样做),或者创建一个您在两个地方调用的函数来填充所有内容。因此,与其在两个部分中完成所有网格属性,不如在一个部分中完成。

标签: c# asp.net stored-procedures gridview dropdown


【解决方案1】:
MyGridView1.Columns[1].HeaderText = "Fall " + Convert.ToString(previousvalue);

将其替换为 HeaderRow.Cells[要更改的单元格的索引].Text

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

肯定会改变Grid的Column Header。

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2016-04-09
    相关资源
    最近更新 更多