【问题标题】:Page not rendering after postback occuring in dropdownlist selectedindex changed在下拉列表中发生回发后页面未呈现 selectedindex 更改
【发布时间】:2014-01-20 09:51:17
【问题描述】:

这是一个奇怪的问题。我在下拉列表 selectedindexchanged 中设置 gridview 的页面大小,这是我的 gridview 寻呼机模板。这是我的html源代码

<PagerTemplate>
                        <div class="grid-footer">
                            <div class="gridfooter_size">                           <asp:DropDownList ID="pageSize2" runat="server" AutoPostBack="true" 
                                    onselectedindexchanged="pageSize2_SelectedIndexChanged">
                                <asp:ListItem Value="10" Selected="True">10</asp:ListItem>
                                    <asp:ListItem Value="25">25</asp:ListItem>
                                    <asp:ListItem Value="50">50</asp:ListItem>
                                    <asp:ListItem Value="100">100</asp:ListItem>                                  
                              </asp:DropDownList>

                            </div>
                            <div class="gridfooter_info">
                                <asp:Label ID="lblSummary" runat="server"></asp:Label>
                            </div>
                            <div class="gridfooter_paginate">
                                <asp:LinkButton ID="lnkFirstbnt" runat="server" CommandName="Page" CssClass="pagerclass-nxt"
                                    CausesValidation="false" CommandArgument="First">First</asp:LinkButton>
                                <asp:LinkButton ID="lnkPrevbnt" runat="server" CommandName="Page" CssClass="pagerclass-prev"
                                    CausesValidation="false" CommandArgument="Prev">Previous</asp:LinkButton>
                                <asp:Label ID="CurrentPage" CssClass="pagerclass-number" Visible="false" runat="server"
                                    Text="Label"></asp:Label>
                                <asp:LinkButton ID="lnkNextbnt" runat="server" CommandName="Page" CssClass="pagerclass-next"
                                    CausesValidation="false" CommandArgument="Next">Next</asp:LinkButton>
                                <asp:LinkButton ID="lnkLastbnt" runat="server" CommandName="Page" CssClass="pagerclass-last"
                                    CausesValidation="false" CommandArgument="Last">Last</asp:LinkButton>
                            </div>
                        </div>
                    </PagerTemplate>

这是我的代码

Protected Sub pageSize2_SelectedIndexChanged(sender As Object, e As System.EventArgs)
    Dim gvr2 As GridViewRow = GridView2.BottomPagerRow
    Dim ddPageSize2 As DropDownList = DirectCast(gvr2.Cells(0).FindControl("pageSize2"), DropDownList)
    GridView2.PageSize = Convert.ToInt32(ddPageSize2.SelectedValue)
    Call GetDataTables2()
End Sub

当发生回发时,pageSize2_SelectedIndexChanged 事件会针对下拉列表的所有选定值触发,但页面未呈现。它是从 pageSize2_SelectedIndexChanged 事件Call GetDataTables2() 方法跳转的。 如果下拉列表选择的值为10,那么页面正在渲染,很奇怪。可能是什么问题,请提出解决方案

【问题讨论】:

  • 将您的 ASPX 代码放入更新面板并检查..
  • 它本身已经在更新面板中了。
  • 尝试在 pageSize2_SelectedIndexChanged 事件的 Session 或 Viewstate 中保存您选择的值,并在 Page_Load 事件中将 DropDownList 值设置为已保存的值。
  • 谢谢@tarzanbappa。问题解决了。问题是,我在 gridview 中使用了模板化字段,在那些我拖动标签的地方。所有标签都默认将 ID 设为 label1。我没有检查那个。由于相同的 ID,它没有呈现页面并且位于更新窗格中,因此没有显示任何错误消息。 :)
  • 是的。 ;) 很高兴听到 dat..

标签: asp.net vb.net gridview rendering pagertemplate


【解决方案1】:

问题是,我在同一个更新面板中使用了两个网格视图。而这两个网格视图在两个网格视图的模板下具有相同 ID 的控件。这可能是视觉工作室中的一个错误。在我删除更新面板之前,它没有告诉我任何编译时异常,甚至在运行时也没有。我已经更改了控件 ID。现在它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多