Как изменить HeaderText GridView на нескольких страницах?

Я хочу переименовать имена столбцов в GridView на нескольких страницах. Пока что я могу менять по одному. Вот мой код:

protected void Button1_Click(object sender, EventArgs e)
{

    for (int i = 0; i < GridView1.Columns.Count; i++)
    {
        if (GridView1.Columns[i].HeaderText == TextBox1.Text)
        {
            GridView1.Columns[i].HeaderText = TextBox2.Text;
        }

    }


}

В режиме конструктора у меня есть два текстовых поля и кнопка. Когда я нажимаю кнопку, он получает textbox1 и переименовывает тот столбец, который я набрал в textbox2.

Что я пытаюсь сделать: у меня есть несколько страниц, и я хочу изменить их столбец HeaderText. Я не хочу добавлять эти кнопки и текстовые поля на каждую страницу. Есть ли способ вызвать эту функцию только один раз и изменить HeaderTexts на всех страницах?

Заранее спасибо.

1 ответ

Решение

Я решил это, отправив имя столбца в базу данных, и я получил новый текст заголовка из базы данных в Page_Load. Я знаю, что это не лучшее решение, оно медленное из-за подключения к базе данных при каждой загрузке страницы. Лучше чем ничего.:)

Часть базы данных:

 try
    {
        con.Open();
        string[] _col = {  }; // Enter here the column names
        for (int i = 0; i < _col.Length; i++)
        {
            if (_col[i] == TextBox1.Text)
            {
                SqlCommand ins = new SqlCommand("insert into Kolon_Ismi_Degistirme (ind, newHeaderName) values (@ind, @newHeaderName)", con);
                ins.Parameters.AddWithValue("@ind", i);
                ins.Parameters.AddWithValue("@newHeaderName", TextBox2.Text);
                ins.ExecuteNonQuery();
            }
        }
    }
    catch (Exception)
    {
        throw;
    }
    finally
    {
        con.Close();
    }

часть загрузки страницы

 try
    {
        //Get new column name using database                        
        con.Open();
        SqlCommand sel = new SqlCommand("select ind, newHeaderName from Kolon_Ismi_Degistirme", con);
        reader = sel.ExecuteReader();
        while (reader.Read())
        {
            GridView1.Columns[(int)reader["ind"] + 2].HeaderText = (string)reader["newHeaderName"];
        }                
    }
    catch (global::System.Exception)
    {
        throw;
    }
    finally
    {
        reader.Close();
        con.Close();
    }
Другие вопросы по тегам