首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在网格视图中点击一个新页面时,奇怪的行为就像我点击了一行一样

问当我在网格视图中点击一个新页面时,奇怪的行为就像我点击了一行一样
EN

Stack Overflow用户
提问于 2013-10-11 18:26:10
回答 1查看 31关注 0票数 0

首先是我的html

代码语言:javascript
复制
<asp:GridView ID="GridViewCustomers" runat="server" AutoGenerateColumns="False" 
            AllowPaging="True" datakeynames="Reservation_ID,Excursion_ID"
            onpageindexchanging="GridViewCustomers_PageIndexChanging"
            onrowcommand="GridViewCustomers_SelectedIndexChanged" 
             BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" >

            <AlternatingRowStyle BackColor="#F7F7F7" />

            <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="Reservation_ID" HeaderText="РЕЗ. №" />
                                <asp:BoundField DataField="Name"  HeaderText="Име на Екскурзия" />
                                <asp:BoundField DataField="Reservation_TotalAmount"  HeaderText="Сума по резервацията" />

                <asp:BoundField DataField="Excursion_ID" Visible="false" />

                <asp:BoundField DataField="ReservationDate" HeaderText="Дата на заминаване" />

               <asp:TemplateField HeaderText="Имена на Туристи">
            <ItemTemplate>
                <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# Eval("TouristName") %>'>
                    <ItemTemplate>
                        <%# (Container.ItemIndex+1)+"."+ Container.DataItem  %><br />
                    </ItemTemplate>
                </asp:Repeater>
            </ItemTemplate>
             </asp:TemplateField>

            </Columns>
            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
            <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
            <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
            <SortedAscendingCellStyle BackColor="#F4F4FD" />
            <SortedAscendingHeaderStyle BackColor="#5A4C9D" />
            <SortedDescendingCellStyle BackColor="#D8D8F0" />
            <SortedDescendingHeaderStyle BackColor="#3E3277" />
        </asp:GridView>

因此,在代码中,您将看到在单击选择按钮时,我获得了datakeyna的值,并将用户重定向到另一个页面。问题是,当我单击网格视图的第2页时,我会被重定向到另一个页面,就好像我选择了一行一样。

代码语言:javascript
复制
    protected void Page_Init(object sender, EventArgs e)
    {
        this.lstUserReservations.AddRange(lstUserReservations);
        this.lstUserReservations.AddRange(lstUserReservations);
        this.lstUserReservations.AddRange(lstUserReservations);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            User_Reservation trr = new User_Reservation();
            lstUserReservations = new List<User_Reservation>();
            lstUserReservations = LoadReservationsForUser();
            GridViewCustomers.DataSource = lstUserReservations;
            GridViewCustomers.DataBind();
        }

    }

    protected void GridViewCustomers_SelectedIndexChanged(object sender,  GridViewCommandEventArgs e)

    {  int indexer = Int32.Parse(e.CommandArgument.ToString()); 
                   Session["еxcursion_id"] = this.GridViewCustomers.DataKeys[indexer].Values["Excursion_ID"].ToString();
        Response.Redirect("ReservationInfo.aspx");

    }
    protected void GridViewCustomers_PageIndexChanging(object sender,
       System.Web.UI.WebControls.GridViewPageEventArgs e)
    {
        this.GridViewCustomers.PageIndex = e.NewPageIndex;
         this.GridViewCustomers.DataBind();
    }

}

你看,我有

EN

回答 1

Stack Overflow用户

发布于 2013-10-15 17:45:33

有一小段代码需要你去处理。如果要更改分页,请检查是否已单击分页,如果已单击则返回,否则选择该行。此外,当您更改分页时,RowCommand事件在该PageIndexChanging事件之前和之后工作。

受保护的无效发送者(object GridViewCustomers_SelectedIndexChanged,GridViewCommandEventArgs e)

代码语言:javascript
复制
{  
    if(e.CommandName == "Page")
        return;
    int indexer = Int32.Parse(e.CommandArgument.ToString()); 
    Session["еxcursion_id"] = this.GridViewCustomers.DataKeys[indexer].Values["Excursion_ID"].ToString();
    Response.Redirect("ReservationInfo.aspx");

}

让我知道这是否对你有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19315857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档