2014-02-13 2 views
5

Как я могу добавить в GridView динамически некоторые столбцы на основе условия?ASP.NET динамически добавить столбец в Gridview

<asp:gridview id="CustomersGridView" 
    datasourceid="CustomersSource" 
    autogeneratecolumns="true" 
    emptydatatext="No data available." 
    runat="server"> 

    <columns> 
     <asp:boundfield datafield="CustomerID" headertext="Customer ID"/> 
     <asp:boundfield datafield="CompanyName" headertext="Company Name"/> 
     <asp:boundfield datafield="Address" headertext="Address"/> 
     <asp:boundfield datafield="City" headertext="City"/> 
     <asp:boundfield datafield="PostalCode" headertext="Postal Code"/> 
     <asp:boundfield datafield="Country" headertext="Country"/> 
    </columns> 
    for(int i; i < length; i++) 
     <asp:boundfield datafield="text" headertext="text"/> 
    </asp:gridview> 

ответ

10

Попробуйте это:

BoundField test = new BoundField(); 
test.DataField = "New DATAfield Name"; 
test.Headertext = "New Header"; 
CustomersGridView.Columns.Add(test); 
+1

@ uuser3305953 - Чтобы использовать вышеприведенный код, вы должны сначала создать autogeneratecolumns = "false" –

+0

Хотя этот фрагмент кода может решить вопрос, [включая пояснения] (http://meta.exetchange.com/questions/114762/ объяснение-полностью-на основе кода) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. –

2

Сначала установите свойство вашего Gridviewautogeneratedcolumns=false; затем добавьте следующий код в стороне сервера:

BoundField newColumnName= new BoundField(); 

newColumnName.DataField = "New DATAfield Name"; 
newColumnName.Headertext = "New Header"; 

yourGridView.Columns.Add(newColumnName);` 

Note-Здесь NewColumnName ур Dynamic Столбец, который хотите добавить , а MyGridView - ur gridview id

Смежные вопросы