2013-03-17 5 views
2

Мне нужна группа GridViews для отображения на моей странице. У меня есть список списков объектов раздела, называемых dataList, и каждый список в dataList должен быть привязан к одному из GridView.Создание динамического числа GridViews

Я это

List<List<Section>> dataList; 
foreach (List<Section> sectionList in dataList) 
{ 
    GridView gv = new GridView(); 
    gv.DataSource = sectionList 
    gv.DataBind(); 
} 

и мой разметки:

<asp:GridView runat="server" ID="gv" AutoGenerateColumns="true"/> 

, но когда я загрузить страницу, я не могу видеть ничего. Как отобразить все созданные GridViews? Я уверен, что цикл foreach успешно привязывает каждый GridView к спискам списка данных? Благодаря

+0

если ур динамически связывать GridView вы не нуждаетесь в GridView на разметке , на самом деле вам нужен местозаполнитель. код, который вы написали, не принесет никакой пользы вашему делу. –

ответ

2

Удалите Gridview разметку и контроль использования PlaceHolder для добавления динамического GridViews, Попробуйте это:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"/> 

в C#

int i = 1; 
foreach (List<Section> sectionList in dataList) 
{ 
    GridView gv = new GridView(); 
    //generate dynamic id   
    gv.Id = "gv" + i; i++; 
    gv.AutoGenerateColumns="true"; 
    gv.DataSource = sectionList 
    gv.DataBind(); 
    PlaceHolder1.Controls.Add(gv); 
} 
+0

C# не распознает PlaceHolder, который я создал в Разметке. Существуют ли другие параметры объекта PlaceHolder, которые мне нужно установить, кроме ID и runat? – Jenny54321

+0

над разметкой должен работать. Какая ошибка возникает при попытке получить доступ к ContentPlaceHolder? –

+0

Я не работаю в SiteMaster, я работаю на отдельной странице Results.aspx, поэтому я заменил его на PlaceHolder вместо ContentPlaceHolder. Я все еще не вижу GridViews, когда загружаю страницу, хотя, несмотря на то, что оба PlaceHolder и GridViews установлены так Visible = true – Jenny54321

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