【问题标题】:Getting RowIndex of the footer获取页脚的 RowIndex
【发布时间】:2013-06-15 21:47:01
【问题描述】:

我有如下代码。我的问题是我无法获取页脚的行索引。使用我得到页脚的rowindex = -1的代码。我试图在网上找到解决方案,但我没有找到任何东西。感谢您是否会帮助我。先感谢您。

  protected void Staff_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    try
    {
        //Checking for command name which command/button is pressed
        if (e.CommandName == "ShowDetails")
        {
            GridView Staff = (GridView)sender;

            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = Staff.Rows[index];
            GridView StaffInfo = (GridView)Staff.Rows[index].FindControl("StaffInfo");
            int TeamID = Convert.ToInt16(Staff.DataKeys[index].Values[0].ToString());
            int cityID = Convert.ToInt16(Staff.DataKeys[index].Values[1].ToString());
            StaffInfo.DataSource = GetStaff(cityID, TeamID);
            StaffInfo.DataBind();
            StaffInfo.Visible = true;
        }
        else if(e.CommandName == "ShowAll")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            GridView StaffInfo = (GridView)Staff.Rows[index].FindControl("StaffInfo");
            int TeamID = 0;
            int cityID = 3699;
            StaffInfo.DataSource = GetStaff(cityID, TeamID);
            StaffInfo.DataBind();
            StaffInfo.Visible = true;
        }
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
    }
}

<asp:GridView ID="Staff" runat="server" AutoGenerateColumns="false"  
    OnRowCommand="Staff_RowCommand" 
    DataKeyNames="TeamID,CityID" ShowFooter="True" HorizontalAlign="Center">
<Columns>
    <asp:TemplateField HeaderText=" Function">
        <ItemTemplate>
            <asp:Label Width="150px" ID="Function" ItemStyle-HorizontalAlign="Center" runat="server" Text='<%# Bind("Function") %>'></asp:Label>
            <asp:GridView ID="StaffInfo" AutoGenerateColumns="false" runat="server"> 
                <Columns>
                    <asp:BoundField ItemStyle-Width="150px" DataField="FirstName" HeaderText="First Name"  />
                    <asp:BoundField ItemStyle-Width="150px" DataField="LastName" HeaderText="Last Name" />
                    <asp:BoundField ItemStyle-Width="150px" DataField="SOEID" HeaderText="SOEID" />
                </Columns>
            </asp:GridView>                 
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText=" Team">
        <ItemTemplate>
            <asp:Label Width="150px" ID="Team" ItemStyle-HorizontalAlign="Center" runat="server" Text='<%# Bind("Team") %>'></asp:Label> 
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Staff Count">
        <ItemTemplate>
            <asp:Button Width="40px" ID="StaffCount" ItemStyle-HorizontalAlign="Center" runat="server" Text='<%# Bind("StaffCount") %>' CommandName="ShowDetails" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" CausesValidation="True" UseSubmitBehavior="False" />                   
        </ItemTemplate>
            <FooterTemplate>
                <asp:Button id="TotalStaff" runat="server" Text="Button1" CommandName="ShowAll" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CausesValidation="True" UseSubmitBehavior="False" />
            </FooterTemplate>
    </asp:TemplateField>
    <asp:TemplateField Visible ="false">
        <ItemTemplate>
            <asp:Label runat="server" Width="150px" DataField="TeamID" HeaderText="TeamID" ></asp:Label>
        </ItemTemplate>
    </asp:TemplateField> 
    <asp:TemplateField Visible ="false">
        <ItemTemplate>  
            <asp:Label runat="server" ItemStyle-Width="150px" DataField="CityID" HeaderText="CityID"></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
</Columns> 

【问题讨论】:

    标签: c# asp.net gridview footer


    【解决方案1】:

    您可以通过以下代码获取页脚行-

    gridview1.FooterRow   // Use name of your gridview
    

    检查它是否有任何 idex 属性,以便您可以获取页脚行的索引。

    可能是gridview1.FooterRow.RowIndex // not tested

    【讨论】:

    • 在这种情况下:int index = Staff.FooterRow.RowIndex;指数也是-1。我的目标是单击 TotalStaff 按钮并将 gridview 绑定到我将显示所有员工的页脚。它适用于“常规”行,但不适用于页脚(因为 rowindex 为-1)。你有什么想法我该如何做到这一点?
    【解决方案2】:

    你可以试试这个:

    var rowIndexForFooter = gridview.Rows.Count - 1;
    

    希望对您有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-20
      • 2014-12-02
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 2017-10-03
      相关资源
      最近更新 更多