Как я выравниваю текст для единственного подэлемента в ListView с помощью C#?

Вы очень близки в своем нижнем примере! Чтобы создавать страницы на статических маршрутах, я обычно использую тот же код, который вы указали в своем вопросе. Чтобы вернуть страницу из вашего apos.app.get, вы должны сделать что-то вроде этого:

self.apos.app.get('/account/profile', function(req, res){
    // Place any data you need to access in your template here:
    req.data = {};

    // self.sendPage is what will actually return the page and render the template 'profile.html' in your views folder.
    // You can change 'profile' to the name of your template minus '.html' - e.g. 'page.html' would just be 'page'
    return self.sendPage(req, 'profile', {});
});

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

Если вы добавите это в свой метод построения, у вас будет новый маршрут на вашем сайте, доступ к которому вы сможете получить, перейдя в / account / profile. Он отобразит шаблон, расположенный в папке представлений вашего модуля.

Я первоначально нашел эту информацию на этой странице:

https://apostrophecms.org/docs/technical-overviews/how-apostrophe-handles-requests.html

в разделе «Отображение полной HTML-страницы из маршрута».

5
задан GEOCHET 18 February 2009 в 16:27
поделиться

2 ответа

Для дальнейшего использования вот то, как я решил его:

// Make owner-drawn to be able to give different alignments to single subitems
lvResult.OwnerDraw = true;
...

// Handle DrawSubItem event
private void lvResult_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
    // This is the default text alignment
    TextFormatFlags flags = TextFormatFlags.Left;

    // Align text on the right for the subitems after row 11 in the 
    // first column
    if (e.ColumnIndex == 0 && e.Item.Index > 11)
    {
        flags = TextFormatFlags.Right;
    }

    e.DrawText(flags);
}

// Handle DrawColumnHeader event
private void lvResult_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    // Draw the column header normally
    e.DrawDefault = true;
    e.DrawBackground();
    e.DrawText();
}

Было необходимо обработать DrawColumnHeader, иначе никакой текст или разделители столбцов не будут оттянуты.

4
ответ дан 18 December 2019 в 06:04
поделиться

Класс "ColumnHeader" имеет свойство "TextAlign", которое изменит выравнивание для всех подэлементов в столбце. При необходимости в чем-то более необычном, Вы могли бы всегда использовать событие "DrawSubItem" и делать его владельцем оттянутый.

8
ответ дан 18 December 2019 в 06:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: