У меня есть представление сетки со столбцами Boundfield, и я пытаюсь заменить текст заголовка Boundfield в коде при загрузке страницы. Согласно бизнесу, HeaderText должен измениться, но в моем случае текст не меняется сразу.
<asp:GridView ID = "sampleGrid" runat = "server" OnRowDataBound = "sampleGrid_RowDataBound" OnSorting = "sampleGrid_Sorting">
<Columns>
<asp:BoundField HtmlEncode = "False" HeaderText = "Name" DataField = "Name" SortExpression = "Name" />
</Columns>
</asp:GridView>
Код позади:
protected void sampleGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row != null)
{
sampleGrid.Columns[0].HeaderText = "text";
}
}
Я добавил основную логику своего кода. Пожалуйста, дайте мне знать, если есть какое-либо решение для моей проблемы.
Заранее спасибо за помощь!!





Вы можете установить значение строки заголовка на уровне ячейки в событии RowDataBound.
protected void sampleGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "text";
}
}
Обновлять
if (e.Row.RowType == DataControlRowType.Header)
{
LinkButton lb = e.Row.Cells[0].Controls[0] as LinkButton;
lb.Text = "text";
}
Простите за неудобства !! Я обновил код и добавил выражение сортировки.
Да, ты прав. Но я говорю, что не могу щелкнуть строку после добавления текста на уровне ячейки, и в моем случае я сортирую столбцы после щелчка.
Сортируемый заголовок — это LinkButton. Так что просто найдите это и измените его текст. Смотрите обновление.
Вы можете попробовать ниже
protected void sampleGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
LinkButton headerText = e.Row.Cells[0].Controls[0] as LinkButton;
headerText.Text = "Michel";
}
}
Спасибо за ответ
Спасибо за ответ, который я добавил, как вы упомянули на уровне ячейки, но строки просто потеряли функциональность кликов. Раньше у меня была функция Click для моей строки, где я мог сортировать по возрастанию и убыванию.