Я пытаюсь добавить строку "супер заголовок" в мой gridview.Кажется, я могу сделать это только в коде.В заголовке я хочу добавить текстовое поле и прикрепить обработчик события textchange.Но, хотя код генерирует строку заголовка и текстовое поле, он, похоже, не присоединяет обработчик событий.Вот мой код:
Protected Sub GridViewBegroting_DataBound(ByVal sender As Object, ByVal e As EventArgs) Handles testGrid.DataBound
Dim myGridView As GridView = sender
If myGridView.Controls.Count > 0 Then
AddSuperHeader(myGridView)
End If
End Sub
Protected Sub AddSuperHeader(ByVal gridView As GridView)
Dim myTable As Table = gridView.Controls(0)
Dim cell As TableHeaderCell = MakeCell("Search", 4)
Dim tb As HtmlGenericControl = MakeTextBox()
Dim myNewRow As GridViewRow = New GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal)
cell.Controls.Add(tb)
myNewRow.Cells.Add(cell)
myTable.Rows.AddAt(0, myNewRow)
End Sub
Protected Function MakeTextBox() As HtmlGenericControl
Dim div1 As HtmlGenericControl = New HtmlGenericControl("div")
Dim span1 As HtmlGenericControl = New HtmlGenericControl("span")
Dim tb As TextBox = New TextBox
AddHandler tb.TextChanged, AddressOf TestGridView_Search
tb.ID = "testSearchTextBox"
tb.Attributes("placeholder") = "Search Term"
div1.Controls.Add(span1)
div1.Controls.Add(tb)
Return div1
End Function
Protected Function MakeCell(Optional ByVal text As String = "", Optional ByVal span As Int32 = 1) As TableHeaderCell
Dim header As New TableHeaderCell()
header.ColumnSpan = span
header.Text = text
header.CssClass = "table-header"
Return (header)
End Function
Protected Sub TestGridView_Search(ByVal sender As Object, ByVal e As EventArgs)
Dim i As Integer = 0
End Sub
Это создает все правильные элементы управления, но событие не срабатывает.Ошибок нет, но точка останова на TestGridView_Search не срабатывает.Также это пользовательский элемент управления (ASCX).Я попытался сделать это, подключив функцию javascript ajax, но, похоже, это не работает в файлах ASCX.