【问题标题】:Sorting redirect to another page排序重定向到另一个页面
【发布时间】:2013-01-25 12:40:14
【问题描述】:

我使用SortExpression="fieldName"GridView 的列进行排序。 并且工作完美!但是现在当我单击“列标题”时,它会重定向到另一个页面......而且无论我尝试对哪一列进行排序,它总是重定向到同一页面。我不知道它可能是什么。有什么线索吗?
这是我的 GridView:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" style="font-family: Verdana, Arial, Sans-Serif" 
            DataKeyNames="id"
            CssClass="gridview" DataSourceID="MyDataSource"
            AllowSorting ="True" AllowPaging="True" BackColor="#CCCCCC" 
            BorderStyle="Inset" BorderWidth="2px" BorderColor="GrayText"
            CellPadding="1"
            CellSpacing="5"
            HeaderStyle-HorizontalAlign="Center"
            OnRowDataBound="GridView1_RowDataBound" 
            ForeColor = "Black" RowStyle-CssClass="gridview" 
            onrowcommand="GridView1_RowCommand">            
            <AlternatingRowStyle BackColor="#CCCCCC" />
                <columns>

                    <asp:BoundField HeaderText="ID" DataField="id"  />
                    <asp:BoundField HeaderText="PRIORIDADE" DataField="prioridade" ItemStyle-HorizontalAlign="Center" />
                    <asp:BoundField  HeaderText="SITUAÇÃO"  DataField="situacao" ItemStyle-HorizontalAlign="Center" >
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="RESPONSAVEL" DataField="responsavel" HeaderStyle-Width="65px" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="65px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="DATA DE CADASTRO" DataField="dt_cadastro" SortExpression="dt_cadastro" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-Width="60px"
                    ItemStyle-HorizontalAlign="Center" >
                    <HeaderStyle Width="60px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="PREVISÃO DE TÉRMINO" DataField="previsao_termino" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-Width="60px"
                    ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="60px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="PROJETO" DataField="projeto"  ItemStyle-HorizontalAlign="Center"></asp:BoundField>
                    <asp:BoundField HeaderText="FUNCIONALIDADE" DataField="funcionalidade" ItemStyle-HorizontalAlign="Center" />
                    <asp:BoundField HeaderText="CLUBE" DataField="clube"  ItemStyle-HorizontalAlign="Center" />

                    <asp:TemplateField HeaderStyle-Width="70px" HeaderText="VISUALIZAR" >
                        <ItemTemplate>
                            <asp:Button ID="Btn_Visualizar" runat="server" Text="VISUALIZAR" CssClass="Btn_Grid"  Font-Size="7pt" Font-Names="Verdana, Arial"  OnClick="Btn_Visualizar_Click"
                            CommandName="visualizar" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />                            
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderStyle-Width="66px" HeaderText="ALTERAR">
                        <ItemTemplate>
                            <asp:Button ID="Btn_Alterar" runat="server" Text="ALTERAR" CssClass="Btn_Grid" Font-Size="7pt" Font-Names="Verdana, Arial"
                            CommandName="editar" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />
                        </ItemTemplate>
                    </asp:TemplateField>


                </columns>
            <EditRowStyle ForeColor="Black" CssClass="GridViewEditRow" />
            <FooterStyle BackColor="#CCCCCC" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" BorderColor="White" BorderStyle="Solid" BorderWidth="1px" />
            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
            <RowStyle BackColor="White" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />      
            </asp:GridView>

RowwCommand:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "visualizar")
            {
                Session["id"] = GridView1.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[0].Text;
                Session["editar"] = null;
            }
            else if (e.CommandName == "editar")
            {
                Session["id"] = GridView1.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[0].Text; //Grava o ID do chamado da linha correspondente.
                Session["editar"] = 1; // 1 - Editar   2 - Não Editar .
            }

            Response.Redirect("/Adm/DetalhesChamado.aspx");

        }

Obs:如您所见,我有一个重定向到另一个页面的Button (Btn_Alterar),当我单击对列进行排序时,我将重定向到同一页面。不知道有没有关系... 谢谢!

【问题讨论】:

    标签: c# asp.net visual-studio-2010 gridview


    【解决方案1】:

    很可能,这是onrowcommand="GridView1_RowCommand" 的 postback.coz

    【讨论】:

    • 嗨@TamalKantiDey。我会做一些改变来测试它,我会尽快留下反馈。告诉我,我该如何解决?
    • 如果您提供GridView1_RowCommand代码会更好。
    【解决方案2】:

    回发是因为onrowcommand="GridView1_RowCommand

    onrowcommand 附加到GridView 时,它会在您单击它时被直接触发。尝试删除事件或相应地更新代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 2016-06-10
      • 2017-04-03
      • 2016-12-19
      相关资源
      最近更新 更多