After posting this: Custom Header in GridView
…I have a related problem. I have added the table row during OnDataBound, and it shows up, the links are clickable. There are two problems with adding it here: first, if a postback occurs that doesn’t DataBind, the row disappears; second, no events are happening when the LinkButtons are clicked. Here is the OnDataBound code:
protected override void OnDataBound(EventArgs e) { base.OnDataBound(e); // Hook up the handler to create the Selection header/footer // TODO: Wrap this in a function sometime Table table = (Table)Controls[0]; GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal); // TODO: should add css classes TableHeaderCell cell = new TableHeaderCell(); cell.ColumnSpan = Columns.Count + 1; // plus 1 for the checkbox column cell.HorizontalAlign = HorizontalAlign.Left; // do this or css? HtmlGenericControl label = new HtmlGenericControl('label'); label.InnerText = 'Select:'; selectNoneLK = new LinkButton(); selectNoneLK.ID = 'SelectNoneLK'; selectNoneLK.Text = 'None'; selectNoneLK.Click += SelectNoneLK_Click; //selectNoneLK.CommandName = 'SelectNone'; //selectNoneLK.Command += SelectNoneLK_Click; selectAllLK = new LinkButton(); selectAllLK.ID = 'SelectAllLK'; selectAllLK.Text = 'All on this page'; //selectAllLK.CommandName = 'SelectAll'; //selectAllLK.Command += SelectAllLK_Click; selectAllLK.Click += SelectAllLK_Click; cell.Controls.Add(label); cell.Controls.Add(selectNoneLK); cell.Controls.Add(selectAllLK); row.Controls.Add(cell); // Find out where to put this row int rowIndex = 0; if(SelectionMode == SelectionMode.AboveHeader) { rowIndex = 0; } else if(SelectionMode == SelectionMode.BelowHeader) { rowIndex = 1; } else if(SelectionMode == SelectionMode.AboveFooter) { rowIndex = table.Rows.Count; } else if(SelectionMode == SelectionMode.BelowFooter) { rowIndex = table.Rows.Count + 1; } table.Rows.AddAt(rowIndex, row); }
You can try putting it in the RowCreated Event, while the header is being created. This might also fix your problem with the LinkButtons not working.