Как динамически использовать eval ()

for(i=0;i<10;i++)
{
    <%# Eval(i.ToString()).ToString()%>
}

Как я могу использовать eval, если я не знаю имя столбца. (означает, что динамический столбец создается динамически)

  1. I am creating a DataTable
  2. The dt.Column.Add() column name will come from database
  3. so i dont know what all column name is coming.
  4. Now how i can print it in asp.net page. as it Eval require some string constant; <%# Eval("Column name").ToString()%>
0
что это за код? И что вы хотите сделать (на английском)
добавлено автор Aniket Inge, источник
вы используете gridview?
добавлено автор Aniket Inge, источник
Если вы пытаетесь сделать какую-то динамическую сетку, вам следует рассмотреть возможность использования свойства «AutoGenerateColumns» в GridView, а затем использовать событие OnRowCreated для оценки/преобразования ваших данных перед рендерингом.
добавлено автор Glenn Ferrie, источник
я добавил объяснение того, что я точно делаю
добавлено автор NishantVerma.Me, источник
Я использую Repeater ..
добавлено автор NishantVerma.Me, источник

3 ответы

GridView будет намного лучше подходит для этого, он автоматически генерирует столбцы из источника данных.

You can however loop through the Columns property of the DataTable and get the ColumnName property from each column, however you cannot use a foreach loop inside of databinding tags (<%# %>).

Вот как получить имена столбцов в коде:

DataTable dt = new DataTable();

//populate data table

foreach (DataColumn col in dt.Columns)
{
    string columnName = col.ColumnName;
}

You could use this in a loop in your repeater's item template, however because you aren't using the databinding block (<%# %>) you lose Container.DataItem which makes it extremely difficult, if not impossible, to render out the data from the current item.

1
добавлено
Правильно, я думаю, что
добавлено автор NishantVerma.Me, источник

Для вашей проблемы

В * ASP.NET *


    
        
            
                <%# Eval("COL_NAME")%>
            
        
    

в коде за C#

System.Data.DataTable dt = null;
    private void GetData()
    {
        System.Data.DataTable dtMain =//MyDAta Table;
        dt = new System.Data.DataTable();
        dt.Columns.Add("COL_NAME");
        System.Data.DataRow dr = null;
        for (int i = 0; i < dtMain.Columns.Count; i++)
        {
            dr = dt.NewRow();
            dr[0] = dtMain.Columns[0].ColumnName;
            dt.Rows.Add(dr);
        }
        rptrTester.DataSource = dtMain;
        rptrTester.DataBind();
    }
    protected void rptrTester_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Repeater rptrTesterInner = (Repeater)e.Item.FindControl("rptrTesterInner");
        rptrTesterInner.DataSource = dt;
        rptrTesterInner.DataBind();
    }
0
добавлено
Это не решение. Пожалуйста, прочитайте вопрос, прежде чем отвечать :(
добавлено автор NishantVerma.Me, источник

Дело в том, что ... вы знаете, какое имя столбца подходит. На шаге 2 вы говорите, что параметр строки dt.Column.Add() будет поступать из базы данных. Таким образом, это подразумевает отдельный процесс, когда вы сначала отправляетесь в свою базу данных и получаете список имен столбцов.

Затем вы перебираете этот список и заполняете свою функцию Eval (оператор FOR, который вы добавили, фактически прокручивает список имен столбцов базы данных, которые могут быть в массиве или списке или их собственном объекте данных).

0
добавлено
Правильно! теперь моя проблема заключается в том, как получить «Имя столбца» типа datatable
добавлено автор NishantVerma.Me, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)