그리드뷰에서 THEAD를 렌더링하려면 어떻게 해야 합니까?
어떻게 해야 하나요?GridView
렌더링 제어<thead>
<tbody>
태그? 알아요.UseAccessibleHeaders
그것을 넣음<th>
대신에<td>
하지만 나는 그것을 얻을 수 없습니다.<thead>
등장할 것
이렇게 하면 됩니다.
gv.HeaderRow.TableSection = TableRowSection.TableHeader;
사용합니다.OnRowDataBound
이벤트:
protected void GridViewResults_OnRowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.Header) {
e.Row.TableSection = TableRowSection.TableHeader;
}
}
답변의 코드는 계속 진행해야 합니다.Page_Load
또는GridView_PreRender
나는 그것을 다음과 같은 방법으로 불렀습니다.Page_Load
그리고 a를 받았습니다.NullReferenceException
.
다음 코드를 사용하여 이 작업을 수행합니다.
그if
제가 추가한 진술은 중요합니다.
그렇지 않으면(그리드 렌더링 방법에 따라) 다음과 같은 예외가 발생합니다.
표에는 머리글, 본문, 바닥글 순서로 행 섹션이 포함되어야 합니다.
protected override void OnPreRender(EventArgs e)
{
if ( (this.ShowHeader == true && this.Rows.Count > 0)
|| (this.ShowHeaderWhenEmpty == true))
{
//Force GridView to use <thead> instead of <tbody> - 11/03/2013 - MCR.
this.HeaderRow.TableSection = TableRowSection.TableHeader;
}
if (this.ShowFooter == true && this.Rows.Count > 0)
{
//Force GridView to use <tfoot> instead of <tbody> - 11/03/2013 - MCR.
this.FooterRow.TableSection = TableRowSection.TableFooter;
}
base.OnPreRender(e);
}
그this
개체가 내 그리드 보기입니다.
저는 실제로 사용자 지정 컨트롤을 만들기 위해 Asp.net GridView를 오버로드했지만, 사용자 지정 그리드뷰 접근 방식을 사용하는 대신 aspx.cs 페이지에 붙여넣고 이름으로 GridView를 참조할 수 있습니다.
참고: 바닥글 로직을 테스트하지는 않았지만, 헤더에 대해 작동하는 것은 알고 있습니다.
이것은 나에게 도움이 됩니다.
protected void GrdPagosRowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.TableSection = TableRowSection.TableBody;
}
else if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.TableSection = TableRowSection.TableHeader;
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.TableSection = TableRowSection.TableFooter;
}
}
이것은 VS2010에서 시도되었습니다.
이것이 오래된 것이라는 것은 알지만, 표준 그리드 보기에 대한 MikeTeeVee의 답변에 대한 해석은 다음과 같습니다.
asx 페이지:
<asp:GridView ID="GridView1" runat="server"
OnPreRender="GridView_PreRender">
aspx.cs :
protected void GridView_PreRender(object sender, EventArgs e)
{
GridView gv = (GridView)sender;
if ((gv.ShowHeader == true && gv.Rows.Count > 0)
|| (gv.ShowHeaderWhenEmpty == true))
{
//Force GridView to use <thead> instead of <tbody> - 11/03/2013 - MCR.
gv.HeaderRow.TableSection = TableRowSection.TableHeader;
}
if (gv.ShowFooter == true && gv.Rows.Count > 0)
{
//Force GridView to use <tfoot> instead of <tbody> - 11/03/2013 - MCR.
gv.FooterRow.TableSection = TableRowSection.TableFooter;
}
}
함수를 만들고 해당 함수를 사용합니다.PageLoad
다음과 같은 이벤트:
기능은 다음과 같습니다.
private void MakeGridViewPrinterFriendly(GridView gridView) {
if (gridView.Rows.Count > 0) {
gridView.UseAccessibleHeader = true;
gridView.HeaderRow.TableSection = TableRowSection.TableHeader;
}
}
그PageLoad
이벤트:
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack)
{
MakeGridViewPrinterFriendly(grddata);
}
}
jQuery를 사용하여 추가할 수도 있습니다.이렇게 하면 TableRowSection의 문제를 피할 수 있습니다.PostBack에서 삭제되는 TableHeader.
$('#myTableId').prepend($("<thead></thead>").append($(this).find("#myTableId tr:first")));
언급URL : https://stackoverflow.com/questions/309101/how-do-i-get-gridview-to-render-thead
'programing' 카테고리의 다른 글
pip로 특정 git commit 설치 (0) | 2023.05.07 |
---|---|
PostgreSQL: Unix epoch에서 현재까지 변환하는 방법은 무엇입니까? (0) | 2023.05.07 |
Azure의 경우 p7b를 pfx로 변환 (0) | 2023.05.07 |
Mongoose(MongoDB)를 사용하여 중첩된 문서 쿼리 (0) | 2023.05.07 |
Git에서 오리진/마스터와 오리진 마스터의 차이점은 무엇입니까? (0) | 2023.05.07 |