Отношение сетки c # DevExpress: как заставить GridView показывать количество строк?

#c# #devexpress

#c# #devexpress

Вопрос:

Как отобразить номер строки в заголовке дочернего элемента / внука, следуя прикрепленным файлам ниже?

Приведенный выше код работает только для gridView1_CustomDrawRowIndicator, но он не работает для дочернего события CustomDrawRowIndicator. И результатом использования этого кода является номер строки, начинающийся с 0, как сделать, чтобы он начинался с 1, как результат по этой ссылкеhttps://www.codeproject.com/Tips/835501/Master-Detail-Datagridview и https://www.codeproject.com/Tips/1215736/Master-Detail-Datagridview-in-Csharp

Нажмите здесь, чтобы показать изображение Вот результат приведенных ниже кодов:

     private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
    {
        GridView gv = (GridView)sender;
        if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
        {
            e.Info.DisplayText = e.RowHandle.ToString();
            e.Info.Appearance.Font = new Font("CordiaUPC", 12);
            e.Info.Appearance.Options.UseFont = true;
            e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            if (!indicatorIcon)
                e.Info.ImageIndex = -2;
        }
    }

    private void gridView2_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
    {
        GridView gv = (GridView)sender;
        if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
        {
            e.Info.DisplayText = e.RowHandle.ToString();
            e.Info.Appearance.Font = new Font("CordiaUPC", 12);
            e.Info.Appearance.Options.UseFont = true;
            e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            if (!indicatorIcon)
                e.Info.ImageIndex = -2;
        }
    }           

    private void gridView3_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
    {
        GridView gv = (GridView)sender;
        if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
        {
            e.Info.DisplayText = e.RowHandle.ToString();
            e.Info.Appearance.Font = new Font("CordiaUPC", 12);
            e.Info.Appearance.Options.UseFont = true;
            e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            if (!indicatorIcon)
                e.Info.ImageIndex = -2;
        }
    }
  

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

     private void gridView1_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
    {
        e.DisplayText = e.RowHandle.ToString();
    }
  

Нажмите здесь, чтобы показать изображение

Комментарии:

1. вы проверили эту ссылку devexpress.com/Support/Center/Question/Details/A2079 /… . Для отображения правильного индекса строки используйте e.Info.DisplayText = e.RowHandle. toString() 1;

2. Да, но customdrawcell должен добавить больше столбцов для номера строки, но я хотел показать номер строки в RowHeader.

3. Я не знаю, как показать только номер строки в заголовке без добавления несвязанного столбца. Что касается, я знаю, что мне нужно добавить несвязанный столбец.

4. все в порядке, в любом случае спасибо

5. Используйте e.info.Отображать текст. Я нашел какое-то похожее решение в службе поддержки devexpress. Я опубликовал код в ответе. Надеюсь, это может помочь.

Ответ №1:

Пожалуйста, попробуйте вот так из этой ссылки. https://www.devexpress.com/Support/Center/Question/Details/T126680/auto-row-number-in-grid

  gridView1.IndicatorWidth = 30;
        void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
        {
            if(e.RowHandle >= 0 )
                e.Info.DisplayText = e.RowHandle.ToString();
        }
  

Комментарии:

1.это не работает i.stack.imgur.com/eFrXz.png i.stack.imgur.com/b3Lio.png

2. ДА. ваш код выглядит хорошо для меня. Это должно сработать. Я чувствую, что это связано с каким-то другим свойством для gridview. Это блокирует отображение заголовка

3. Я не вижу ничего плохого в вашем коде. Возможности, которые я вижу со своей стороны, могут быть связаны с некоторыми свойствами или типом обложки, которые вы используете. Пожалуйста, отладьте построчно и посмотрите, что ваш customdrawrowindicator выполнен и дает ожидаемый результат. Затем проверьте эту ссылку, это может помочь. devexpress.com/Support/Center/Question/Details/Q471358 /…

4. У меня есть дизайн gridview, чтобы воспроизвести проблему. Первая сетка показывает номер, а дочерний элемент — нет. В случае успеха я опубликую.

5. поскольку изменение столбцов текстового заголовка только в GridView1 и во многих GridViews, использование кода отличается, поэтому я думаю, что в этом случае это тоже самое. скин, который я использую, используется по умолчанию. (открытый частичный класс Form_Customers_List: форма)