GridView与TextBox

时间:2009-08-18 04:22:38

标签: asp.net vb.net gridview

我有一个带有评论文本,链接按钮和

的gridview控件

不可见(文本框和发布到数据库的按钮。)

当我点击链接按钮时,我想显示文本框。

任何人都可以帮我解决这个问题。

我的gridview代码:

<asp:GridView ID="grdComments" runat="server" AutoGenerateColumns="False">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <table width="500px" cellpadding="3" cellspacing="3">
                <tr/>
                    <td/>
                        <asp:Label runat="server" ID="lblLeftPad"></asp:Label>
                        <asp:Label runat="server" ID="lblComment" Text='<%# container.dataitem("CommentText") %>'></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:LinkButton ID="lbtnReply" Text="Reply" runat="server" CommandName="CommentReply"></asp:LinkButton>
                    </td>
                </tr>
                <tr>
                        <td>
                            </asp:TextBox ID="txtReply" runat="server" Height="50px" Width="500px" Visible="false"></asp:TextBox>
                        </td>
                    </tr>
               </table>

        </ItemTemplate>
    </asp:TemplateField>
</Columns>

1 个答案:

答案 0 :(得分:2)

如果您没有使用Javascript / AJAX,那么在链接按钮的click事件上将文本框的可见值设置为true。链接按钮会自动发送回发,因此除非您将链接按钮设置为不自动回发,否则这将起作用。

编辑:访问链接按钮

根据您设置网格的方式,有几种方法。如果这是您正在使用的命令字段或按钮字段,则可以使用RowCommand和e.CommandArgument来处理您所在的行,然后将文本框设置为true。以下是一个示例:

    row = Integer.Parse(e.CommandArgument)
    GridView1.Rows(row).Cells(1).Controls(1).Visible = True 

单元格设置为您要处理的列,控件#设置为您要在单元格中使用的控件。即使您只放置一个文本框,单元格中也会创建多个控件。您可以使用FindControl语法更可靠地控制您。

如果使用链接按钮创建模板化字段,则在链接按钮的命令参数上将其值设置为:=&lt;%#CType(Container,GridViewRow).RowIndex%&gt;

并且gridview的rowcommand中的上述代码将起作用。

或者您可以将链接按钮单击事件设置为:

gridview1.rows(directcast(sender,LinkBut​​ton).CommandArgument).cells(1).Controls(1).visible = true

您可以通过从GUI编辑模板并双击链接按钮来访问模板化字段中的链接按钮单击事件。

我建议使用RowCommand选项并使用FindControl语法使您的应用程序更易读,更易于维护。