Динамически генерируемая сетка Telerik MVC3 - установите флажки - PullRequest
0 голосов
/ 21 марта 2012

У меня есть сетка, которая генерируется динамически на основе критериев поиска. Я рендерил сетку в частичном виде, используя Ajax. Это все отлично работает.

Теперь мне нужно добавить столбец флажка в качестве первого столбца.

Кроме того, как мне настроить фильтрацию, сортировку страниц и т. Д., Чтобы они работали сейчас, поскольку они отображаются частично. Когда я нажимаю на заголовок для сортировки, я получаю сообщение об ошибке Страница не найдена, а значок фильтра ничего не делает.

И еще одна вещь. Когда я пытаюсь добавить GridCommandColumnSettings в сетку, я получаю ошибку «Недопустимый элемент объявления инициализатора»

Код указан ниже для сетки columnsettings

    public GridColumnSettings[] NewColumns(DataTable fullDT)
    {
        GridColumnSettings[] newColumns = new GridColumnSettings[fullDT.Columns.Count];

        for (int i = 0; i < fullDT.Columns.Count; i++)
        {
            // set the visibility property for the DeliveryID
            bool boolDeliveryID;
            if (fullDT.Columns[i].ColumnName == "DeliveryID")
                boolDeliveryID = false;
            else
                boolDeliveryID = true;

            newColumns[i] = new GridColumnSettings
            {
                new GridCommandColumnSettings
                {
                    Commands = 
                    {
                        new GridEditActionCommand(),
                        new GridDeleteActionCommand()
                    },
                    Width = "200px",
                    Title = "Commands"
                },
                Member = fullDT.Columns[i].ColumnName,
                Title = fullDT.Columns[i].ColumnName,
                Visible = boolDeliveryID,
                Filterable = true,
                Sortable = true
            };
        }
        return newColumns;
    }

Любые предложения будут оценены.

Спасибо

Я отредактировал свой пост, добавив партиал к сетке

Here is my partial for the grid

@(Html.Telerik().Grid<System.Data.DataRow>(Model.Data.Rows.Cast<System.Data.DataRow>())
.Name("Grid")
.Columns(columns =>
{
    columns.LoadSettings(Model.Columns as IEnumerable<GridColumnSettings>);
})
.DataBinding(dataBinding =>       dataBinding.Ajax().Select("_DeliveryManagerCustomBinding", "Deliveries"))
.EnableCustomBinding(true)
 .Resizable(resize => resize.Columns(true))

)

1 Ответ

1 голос
/ 30 марта 2012

Я не добавляю столбцы таким образом, когда использую элемент управления Telerik Grid, но, глядя на то, что вы делаете, я рискну предположить, что вам нужно будет сделать что-то вроде следующего:

увеличьте размер массива newColumns на 1 (потому что мы собираемся добавить в столбец флажок):

GridColumnSettings[] newColumns = new GridColumnSettings[fullDT.Columns.Count + 1];

, если вы хотите его в начале, вам нужно будет сделать следующее до того, как выloop:

GridColumnSettings s = new GridColumnSettings() {
  ClientTemplate("<input type=\"checkbox\"  name=\"checkeditems\" value=\"some value\" />")
  Title("title goes in here")
};

Затем вы добавите его в свой массив:

newColumns[0] = s;

, а затем увеличите индекс запуска для цикла for до 1:

for (int i = 1; i < fullDT.Columns.Count; i++)

столбец флажка будет идти в начале

...