Asp.net MVC как отобразить динамические столбцы
Исходя из веб-форм, я все еще совершенно новичок в этом деле. ASP.net MVC.
У меня есть потребность отобразить HTML-таблицу, в которой столбцы неизвестны во время разработки. У меня есть следующие две таблицы MS SQL, которые обозначают, какие столбцы будут отображаться во время выполнения.
CREATE TABLE ActualData ( Col1 int, Col2 int, Col3 int, Col4 int ) INSERT INTO ActualData (Col1, Col2, Col3, Col4) VALUES (1, 2, 3, 4) CREATE TABLE ColumnsToShow ( UserID int, ColName varchar(10) ) INSERT INTO ColumnsToShow(UserID, ColName) VALUES (1, 'Col1') INSERT INTO ColumnsToShow(UserID, ColName) VALUES (1, 'Col2') INSERT INTO ColumnsToShow(UserID, ColName) VALUES (2, 'Col3') INSERT INTO ColumnsToShow(UserID, ColName) VALUES (2, 'Col4')
Так что представление показывает только фактические данные.Col1 и ActualData.Col2 пользователю 1, а также
ActualData.Col3 и ActualData.Col4 для пользователя 2.
Я знаю, что в webforms я бы, вероятно, сделал что-то вроде этого, чтобы удалить соответствующие столбцы перед привязкой datatable к элементу управления GridView.
DataTable dtData = GetActualData(); // db call List<string> colsToRemove = GetColumnsToRemove(); // db call returning only the fields to remove // remove columns not neccessary for the current user foreach (string colName in colsToRemove) foreach (DataColumn dc in dtData.Columns) if (dc.ColumnName == colName) dtData.Columns.Remove(colName); // bind the datatable to a GridView gridview.AutoGenerateColumns = true; gridview.DataSource = dtData; gridview.DataBind();
Новичок в MVC, я действительно даже не знаю, с чего начать. Так что любой совет будет оценен по достоинству.
Что я уже пробовал:
Я еще ничего не пробовал, так как Ищу идею, с чего начать.