У меня уже есть собственный графический чертеж в моем GridView, используя SetRenderMethodDelegate в строке заголовка в методе OnRowCreated. У меня возникают проблемы с попыткой добавить LinkButtons в новую строку заголовка.Пользовательский заголовок в GridView
Это то, что выглядит как 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 работает (ни один не работал, хотя). В LinkButtons отображаются как простые теги якоря, как это: < A ID = «SelectNoneLK» > None </а >
Я знаю, что есть что-то не так с тем, что идентификатор выглядит так, так как я использую Главная страница для этого и идентификатора должна быть чем-то длиннее.
Любая помощь будет оценена!
Ник
Я вместо этого добавил их через иерархию в OnDataBound, но, к сожалению, строка исчезает, если обратная передача происходит без привязки данных. Кроме того, хотя они теперь доступны для кликабельности, и идентификатор кажется правильным, похоже, что не произошло событие. –
Вы должны повторно добавить их (поскольку они являются динамическими элементами управления) для обратной передачи, чтобы запустить событие. –