C# 单击按钮时隐藏Gridview行

C# 单击按钮时隐藏Gridview行,c#,asp.net,gridview,C#,Asp.net,Gridview,当页面加载时,屏幕上会出现一个gridview,下面有一个asp按钮。我想做的是,当用户单击按钮时,它会在gridview中隐藏一行。我不想将数据从数据源中删除,我只是想对用户隐藏它。你知道如何在C中实现这一点吗# 您可以试试这个 gridview标记: <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server"

当页面加载时,屏幕上会出现一个gridview,下面有一个asp按钮。我想做的是,当用户单击按钮时,它会在gridview中隐藏一行。我不想将数据从数据源中删除,我只是想对用户隐藏它。你知道如何在C中实现这一点吗#


您可以试试这个

gridview标记:

<asp:TemplateField>
   <ItemTemplate>
    <asp:LinkButton ID="LinkButton1" runat="server" 
                Text="Click1" 
                OnClick="LinkButton1_Click" />
  </ItemTemplate>

我测试了这个解决方案,但我认为方法是Css,这将使计数()为-1:

在网格中放置一个更新面板

    <asp:UpdatePanel runat="server">
        <ContentTemplate>   
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:BoundField DataField = "ProductName" HeaderText="A" />
        <asp:BoundField DataField = "CategoryName" HeaderText="B" />
    </Columns>
</asp:GridView>
            </ContentTemplate>
    </asp:UpdatePanel>

//Put this when you populate the grid
ViewState["X"] = GridView1.Rows.Count;
ViewState["Y"] = 1;

//在填充网格时放置此选项
ViewState[“X”]=GridView1.Rows.Count;
视图状态[“Y”]=1;
在按钮中输入以下内容:

    protected void btnReceive_Click(object sender, EventArgs e)
    {
            int X = int.Parse(ViewState["X"].ToString());
            int Y = int.Parse(ViewState["Y"].ToString());
            if (Y < GridView1.Rows.Count )
            {
                GridView1.Rows[X - Y].Visible = false;
                ViewState["Y"] = Y + 1; 
            }
    }
protectedvoidbtnReceive\u单击(对象发送方,事件参数e)
{
int X=int.Parse(ViewState[“X”].ToString());
int Y=int.Parse(ViewState[“Y”].ToString());
如果(Y
如果需要再次显示行,只需创建另一个
gvrow.Visible=true的方法

我不知道这是否是最好的方法,但效果很好。
我希望这会有帮助。

你试过使用javascript吗?没有。不知道如何使用javascript。按钮不在gridview中,在gridview之外。我的更新面板中有一个计时器,因为gridview中出现了一个新行,它必须经常更新。当计时器刷新更新面板时,它刷新gridview,并返回隐藏的行。不管怎样,我还是要绕开它。@Apollo,但只有我把更新面板放在示例中,但你可以删除它。我已经把更新面板放好了。是必需的,因为我必须显示定期输入的记录,当单击按钮时,它将获取下一条记录,并从gridview中隐藏该记录。
    <asp:UpdatePanel runat="server">
        <ContentTemplate>   
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:BoundField DataField = "ProductName" HeaderText="A" />
        <asp:BoundField DataField = "CategoryName" HeaderText="B" />
    </Columns>
</asp:GridView>
            </ContentTemplate>
    </asp:UpdatePanel>

//Put this when you populate the grid
ViewState["X"] = GridView1.Rows.Count;
ViewState["Y"] = 1;
    protected void btnReceive_Click(object sender, EventArgs e)
    {
            int X = int.Parse(ViewState["X"].ToString());
            int Y = int.Parse(ViewState["Y"].ToString());
            if (Y < GridView1.Rows.Count )
            {
                GridView1.Rows[X - Y].Visible = false;
                ViewState["Y"] = Y + 1; 
            }
    }