ASP.NET(4.5)GridView分页HTML标记缺少href链接

时间:2015-09-11 16:33:29

标签: c# html asp.net gridview

我在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链接吗?

1 个答案:

答案 0 :(得分:0)

事实证明,问题是设置searchResultsGridView.Enabled = false;的偏离线。因此,ASP.NET仍然会导致页面的标记被渲染,但是要禁用&#34;禁用&#34; asp:GridView,它只是巧妙地省略了每个href=""标记的<a>

Whelp,这浪费了几个小时。感谢您的时间,@ gotmilk13531和@Andrei。