我有一个带有评论文本,链接按钮和
的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>
答案 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,LinkButton).CommandArgument).cells(1).Controls(1).visible = true
您可以通过从GUI编辑模板并双击链接按钮来访问模板化字段中的链接按钮单击事件。
我建议使用RowCommand选项并使用FindControl语法使您的应用程序更易读,更易于维护。