【问题标题】:Get GridView Selected Row Values using Page Previous Page使用页面上一页获取 GridView 选定的行值
【发布时间】:2012-05-31 10:16:47
【问题描述】:

我在 ConsumerList 页面中有一个 gridView。单击编辑按钮时(在每一行中),它​​会导航到 EditConsumer 页面。在 EditConsumer 页面中,我需要使用 Page.PreviousPage 获取所选行的值。如何获取这些值?

    public void Consumer_RowCommand(Object sender, GridViewCommandEventArgs e)
    {

        if (e.CommandName == "CustomEdit")
        {
            int rowIndex = Convert.ToInt32(e.CommandArgument);
            string consumerID = grdConsumers.Rows[rowIndex].Cells[1].Text;
            string consumerName = grdConsumers.Rows[rowIndex].Cells[2].Text;
            string consumerUrl = grdConsumers.Rows[rowIndex].Cells[3].Text;
            string consumerStatus = grdConsumers.Rows[rowIndex].Cells[4].Text;

            Response.Redirect("EditConsumer.aspx?RowIndex=" + rowIndex);
        }
    }

标记

  <asp:GridView ID="grdConsumers" runat="server" AutoGenerateColumns="False" CssClass="resultGridTable"
                GridLines="None" EnableViewState="True" AllowSorting="True" OnSorting="Consumers_Sorting" OnRowCommand="Consumer_RowCommand">
                <AlternatingRowStyle BackColor="#E5E5E5" />
                <Columns>

                   <asp:TemplateField HeaderText="Action">
                        <ItemTemplate>

                             <asp:Button ID="btnView" runat="server" CssClass="actionButtonView"
                                  Text="VIEW" Style="width: 40px" BackColor="Orange"
                                  Font-Bold="True" ForeColor="White" /> 

                             <asp:Button ID="btnEdit" runat="server" CommandName="CustomEdit" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
                              CssClass="actionButtonEdit"
                                  Text="EDIT" Style="width: 35px" BackColor="Orange"
                                  Font-Bold="True" ForeColor="White" /> 

                             <asp:Button ID="btnDelete" runat="server" CssClass="actionButtonDelete"
                                  Text="DELETE" Style="width: 55px" BackColor="Orange"
                                  Font-Bold="True" ForeColor="White" />

                             <asp:Button ID="btnPing" runat="server" CssClass="actionButtonPing"
                                  Text="PING" Style="width: 35px" BackColor="Orange"
                                  Font-Bold="True" ForeColor="White" />

                         </ItemTemplate>
                    </asp:TemplateField>

                    <asp:BoundField HeaderText="Consumer ID" DataField="ConsumerID" SortExpression="ConsumerID"></asp:BoundField>
                    <asp:BoundField HeaderText="Consumer Name" DataField="ConsumerName" SortExpression="ConsumerName"></asp:BoundField>
                    <asp:BoundField HeaderText="Consumer URL" DataField="ConsumerURL" SortExpression="ConsumerURL"></asp:BoundField>
                    <asp:BoundField HeaderText="Status" DataField="Status" SortExpression="Status"></asp:BoundField>



                </Columns>
            </asp:GridView>

【问题讨论】:

    标签: c# asp.net .net vb.net gridview


    【解决方案1】:

    注意PreviousPage 只是!= nullcross page postingResponse.Redirect 将不起作用。例如,您可以使用Server.Transfer

    您可以提供一个公共属性SelectedConsumer,它返回GridView 中当前选定行的自定义对象。

    public Consumer SelectedConsumer
    {
        get {
            if (grdConsumers.SelectedRow == null)
                return null;
    
            var c = new Consumer();
            c.consumerID = grdConsumers.SelectedRow.Cells[1].Text;
            c.consumerName = grdConsumers.SelectedRow.Cells[2].Text;
            c.consumerUrl = grdConsumers.SelectedRow.Cells[3].Text;
            c.consumerStatus = grdConsumers.SelectedRow.Cells[4].Text;
    
            return c;
        }
    }
    

    现在您只需要将 PreviousPage 属性转换为正确的页面类型:

    var consumerList = (ConsumerList)Page.PreviousPage;
    var selectedConsumer = consumerList.SelectedConsumer;
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-12
        • 2019-11-27
        • 1970-01-01
        相关资源
        最近更新 更多