Asp.net 如何在gridview中单击链接按钮显示和隐藏文本框

Asp.net 如何在gridview中单击链接按钮显示和隐藏文本框,asp.net,gridview,Asp.net,Gridview,我有gridview,它有“批准”和“拒绝”按钮。当点击“拒绝”按钮时,我需要显示评论文本框。其他否。在输入评论后,我已将其保存在数据库中。如何做到这一点,任何人都可以帮我吗 这是我的密码: <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC"

我有gridview,它有“批准”和“拒绝”按钮。当点击“拒绝”按钮时,我需要显示评论文本框。其他否。在输入评论后,我已将其保存在数据库中。如何做到这一点,任何人都可以帮我吗

这是我的密码:

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True"  AutoGenerateColumns="False"  BackColor="White"
                  BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" 
                 GridLines="Horizontal" OnRowDataBound="GridView1_RowDataBound">
                 <Columns>
            <asp:TemplateField HeaderText="Industrial Zone">

                <ItemTemplate>
                     <asp:Label runat="server" ID="lblindzone" Text='<%# Eval("indzone") %>'></asp:Label>


                </ItemTemplate>


            </asp:TemplateField>

            <asp:TemplateField HeaderText="District">

                <ItemTemplate>
                     <asp:Label runat="server" ID="lbldstr" Text='<%# Eval("dstr")%>'></asp:Label>


                </ItemTemplate>

            </asp:TemplateField>
                      <asp:TemplateField HeaderText="Industrial Area">

                <ItemTemplate>
                      <asp:Label runat="server" ID="lblnmindar" Text='<%# Eval("nmindar")%>'></asp:Label>


                </ItemTemplate>

            </asp:TemplateField>
                      <asp:TemplateField HeaderText="Plot Number">

                <ItemTemplate>
                     <asp:Label runat="server" ID="lblplno" Text='<%# Eval("plno")%>'></asp:Label>


                </ItemTemplate>

            </asp:TemplateField>

           <asp:TemplateField HeaderText="Approve/Reject">

                <ItemTemplate>
                    <asp:LinkButton ID="lnkApproved" runat="server" Text="Approve" OnClick="lnkApproved_Click"><img src="images/approve.png"  style="width:20px;height:20px; margin:5px" title="Approve"/></asp:LinkButton>
                    <asp:LinkButton ID="lnkReject" runat="server" Text="Reject" OnClick="lnkReject_Click" OnClientClick="return showandhide(this)"><img src="images/reject.png" style="width:16px;height:16px; margin:5px" title="Reject"/></asp:LinkButton>
                    <asp:LinkButton ID="lnkviewdetails" runat="server" Text="View Details" OnClick="lnkviewdetails_Click"><img src="images/viewdetails.png" style="width:20px;height:20px; margin:5px" title="Details" /></asp:LinkButton>
                    <asp:TextBox ID="txtcomment" runat="server" style="display:none"></asp:TextBox>
                </ItemTemplate>

            </asp:TemplateField>
                      <asp:TemplateField HeaderText="Status">

                <ItemTemplate>
                    <asp:Label runat="server" ID="lblstatus" Text='<%# Eval("status")%>'></asp:Label>


                </ItemTemplate>

            </asp:TemplateField>


        </Columns>


</asp:GridView>

我假设您使用的是C语言,而不是Javascript。要查看或隐藏特定文本框,应触发GridView的RowCommand事件:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "viewhide")
  {
    GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
    TextBox tbComments = ((TextBox)gvr.FindControl("txtcomment"));

    tbComments.Visible = true;
  }
}
这将是您的ASPX代码隐藏

<asp:LinkButton ID="lnkReject" runat="server" Text="Reject" OnClick="lnkReject_Click" CommandName="viewhide" OnClientClick="return showandhide(this)"><img src="images/reject.png" style="width:16px;height:16px; margin:5px" title="Reject"/></asp:LinkButton>


编辑:现在您已将标记从C#更改为VB.NET,这不太好。因为我把所有的时间都花在写c代码上了

您希望在单击ASP.NET GridView中的按钮时显示文本框。对吗?是的,只单击了“拒绝”按钮。asp.net是否使用VB.net而不是C#?@reporter User Choice?我没有更改它。我只使用C#。事实上,你的代码对我有点帮助。