2012-04-16 10 views
0

Я хочу переименовать имена столбцов в 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 и переименовывает этот столбец, который я ввел в текстовое поле2.

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

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

ответ

0

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

Database часть:

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(); 
    } 

Page_Load часть

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(); 
    }