Пользовательский заголовок в GridView - PullRequest
0 голосов
/ 04 февраля 2009

Я уже получил свой собственный чертеж заголовка в моем GridView, используя SetRenderMethodDelegate в строке заголовка в методе OnRowCreated. У меня проблемы с попыткой добавить LinkButtons в новую строку заголовка.

Вот как выглядит RenderMethod:

private void RenderSelectionMode(HtmlTextWriter output, Control container)
{
    TableHeaderCell cell = new TableHeaderCell();
    cell.Attributes["colspan"] = container.Controls.Count.ToString();
    AddSelectionModeContents(cell);
    cell.RenderControl(output);

    output.WriteEndTag("tr");

    HeaderStyle.AddAttributesToRender(output);
    output.WriteBeginTag("tr");

    for(int i = 0; i < container.Controls.Count; i++)
    {
        DataControlFieldHeaderCell cell = (DataControlFieldHeaderCell)container.Controls[i];
        cell.RenderControl(output);
    }
}

private void AddSelectionModeContents(Control parent)
{
    // TODO: should add css classes

    HtmlGenericControl label = new HtmlGenericControl("label");
    label.InnerText = "Select:";

    selectNoneLK = new LinkButton();
    selectNoneLK.ID = "SelectNoneLK";
    selectNoneLK.Text = "None";
    //selectNoneLK.Attributes["href"] = Page.ClientScript.GetPostBackClientHyperlink(selectNoneLK, "");
    //selectNoneLK.Click += SelectNoneLK_Click;
    selectNoneLK.Command += SelectNoneLK_Click;

    selectAllLK = new LinkButton();
    selectAllLK.ID = "SelectAllLK";
    selectAllLK.Text = "All";
    //selectAllLK.Attributes["href"] = Page.ClientScript.GetPostBackClientHyperlink(selectAllLK, "");
    //selectAllLK.Click += SelectAllLK_Click;
    selectAllLK.Command += SelectAllLK_Click;

    parent.Controls.Add(label);
    parent.Controls.Add(selectNoneLK);
    parent.Controls.Add(selectAllLK);
}

Как вы можете видеть, я пробовал разные способы заставить мои LinkButtons работать (хотя ни один не работал). Кнопки LinkBand визуализируются в виде простых тегов привязки, например: Нет

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

Любая помощь будет оценена!

Ник

1 Ответ

1 голос
/ 04 февраля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...