2013-06-25 11 views
0

У меня есть gridview, и я хочу динамически изменять имя заголовка. Возможно ? У меня есть этот код:Gridview, динамически изменяйте заголовокText

OracleCommand cmdReqStockComp = new OracleCommand(reqStockCompTotal); 
cmdReqStockComp.Connection = oConnexion; 
OracleDataReader readerReqStockComp = cmdReqStockComp.ExecuteReader(); 

// ************** ETAPE 2 : On remplit la GridView ************ // 

// On lie le résultat de la requête à la GridView 
gvReportingStockComp.DataSource = readerReqStockComp; 
gvReportingStockComp.DataBind(); 

И этот ASPX код:

<asp:GridView ID="gvReportingStockComp" runat="server" AutoGenerateColumns="false" Visible="false"> 

      <Columns> 

       <asp:BoundField DataField="cod_wo" HeaderText="N° OF" /> 
       <asp:BoundField DataField="composant" HeaderText="Composant" /> 
       <asp:BoundField DataField="BESOIN" HeaderText="Besoin/OF" /> 
       <asp:BoundField DataField="BESOIN_T" HeaderText="Besoin total" /> 
       <asp:BoundField DataField="stock_dispo" HeaderText="Stock dispo" /> 
       <asp:BoundField DataField="QTE_RESTANTE" HeaderText="Qte restante" /> 

      </Columns> 

     </asp:GridView> 

спасибо :)

ответ

2

На самом базовом уровне, вы можете сделать только

gvReportingStockComp.Columns[0].HeaderText = "New Header for First Column"; 
+0

СПАСИБО !!! Я не думаю об этом O_O ... – user2265252

+0

Это не работает для меня. Пожалуйста помоги. Я пробовал это в событии rowdatabound, но это не сработало. – Sak

0

Лучше используйте это

if (e.Row.RowType == DataControlRowType.Header) 
{ 
     e.Row.Cells[0].Text = "HeaderText"; 
} 

вместо

gvReportingStockComp.Columns[0].HeaderText = "New Header for First Column"; 

это^не работает для меня.

1

Пришлось использовать событие Preload для обновления headertext для отсортированных столбцов. Мой код получает UIlabels из DB в вызове UpdatePage, а затем GetUIText получает один ярлык. Установите HeaderText в HTML в число случаев для обновления текста.

Protected Sub Page_preLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreLoad 
    If UpdatePage(Page.Controls, UIsetBase, "122000," + BldCommonScreen) = False Then 
     SetMasterErrMsg(Master, "blderrmsg", Session("ErrorMsg")) 
    End If 

    For Each Col In OpenTestGridView.Columns 
     Dim ht As String = Col.HeaderText 
     Select Case ht 
      Case "1" 
       Col.HeaderText = GetUILabel("114100") 
      Case "2" 
       Col.HeaderText = GetUILabel("114101") 
      Case "3" 
       Col.HeaderText = GetUILabel("114102") 
      Case "4" 
       Col.HeaderText = GetUILabel("114103") 
      Case "5" 
       Col.HeaderText = GetUILabel("114104") 
      Case "6" 
       Col.HeaderText = GetUILabel("114105") 
      Case "7" 
       Col.HeaderText = GetUILabel("114008") 
      Case "8" 
       Col.HeaderText = GetUILabel("123158") 
     End Select 
    Next 
End Sub