我在ASP.Net WebForms应用程序的一个页面上有一个正确工作的asp:GridView
,而在另一个不起作用的页面上却非常相似。问题在于分页;我在AllowPaging=true
控件上有asp:GridView
,在代码隐藏中有正确设置的OnPageIndexChanging="searchResultsGridView_PageIndexChanging"
方法。运行时,分页显示正确(即使我在PagerStyle
上使用自定义css),但后续页面的编号链接按钮在生成的标记中没有设置任何href=""
。
以下是生成的标记:
<tr align="center" class="gridViewPager">
<td colspan="10">
<table>
<tbody>
<tr>
<td>
<span>1</span>
</td>
<td>
<a>2</a>
</td>
<td>
<a>3</a>
</td>
<td>
<a>4</a>
</td>
<td>
<a>5</a>
</td>
<td>
<a>6</a>
</td>
<td>
<a>7</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
显然每个href=""
的{{1}}代码都应该有一个<a>
属性,但是没有。{以下是具有正确工作的分页<td>
的页面的标记:
asp:GridView
这是我的.aspx代码:
<td><a href="javascript:__doPostBack('ctl00$ModalPanelContentPlaceholder$designerSearchResultsGridView','Page$2')">2</a></td>
我的相关代码隐藏:
<div id="searchResultsTableGridViewDivContainer" runat="server">
<asp:GridView CssClass="table table-hover table-bordered" ID="searchResultsGridView"
AutoGenerateColumns="false" SelectedRowStyle-CssClass="info"
OnRowDataBound="searchResultsGridView_RowDataBound"
OnSelectedIndexChanged="searchResultsGridView_SelectedIndexChanged" AllowPaging="true"
PageSize="15" OnPageIndexChanging="searchResultsGridView_PageIndexChanging"
runat="server">
<Columns>
<asp:BoundField HeaderText="Tracking #" DataField="TrackingNumber" />
<asp:BoundField HeaderText="Product Type" DataField="ProductType.TypeName" />
<asp:BoundField HeaderText="Design Type" DataField="DesignType.TypeName" />
<asp:BoundField HeaderText="PWA #" DataField="PWAProductNumber" />
<asp:BoundField HeaderText="PWB #" DataField="PWBProductNumber" />
<asp:BoundField HeaderText="Rev" DataField="Revision" />
<asp:BoundField HeaderText="Designers" DataField="DesignersCSV" />
<asp:BoundField HeaderText="Status" DataField="Status.StatusName" />
<asp:BoundField HeaderText="# Times Released" DataField="NumTimesReleased" />
<asp:BoundField HeaderText="Queue Date" DataField="FormattedQueueDate" />
</Columns>
<PagerStyle HorizontalAlign="Center" CssClass="gridViewPager" />
</asp:GridView>
</div>
知道为什么自动生成的HTML标记无法添加href链接吗?
答案 0 :(得分:0)
事实证明,问题是设置searchResultsGridView.Enabled = false;
的偏离线。因此,ASP.NET仍然会导致页面的标记被渲染,但是要禁用&#34;禁用&#34; asp:GridView
,它只是巧妙地省略了每个href=""
标记的<a>
。
Whelp,这浪费了几个小时。感谢您的时间,@ gotmilk13531和@Andrei。