2009-08-18 2 views
1

у меня есть GridView управления с комментарием текста, кнопка ссылки, и невидимыйGridview с TextBox

(текстовое поле и кнопка для отправки сообщений в базу данных.)

, когда я нажимаю на кнопку ссылки я хотите показать текстовое поле.

Может ли кто-нибудь помочь мне, как это сделать.

мой 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 затем нажмите событие кнопки ссылки в наборе видимого значения текстового поля, чтобы верно. Кнопка ссылки автоматически отправляет обратную передачу, так что это будет работать, если у вас не установлена ​​кнопка ссылки, а не автоматическая обратная передача.

EDIT: Кнопка связи доступа

Есть несколько способов, в зависимости от того, как вы настроите сетки. Если это поле Command или поле кнопки, которое вы используете, вы можете использовать RowCommand и e.CommandArgument, к какой строке вы находитесь, а затем установите для текстового поля значение true. Ниже приведен пример:

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

Клетка установлен в столбце которой вы хотите работать на и управления # устанавливается на контроль вы хотите работать в клетке. В ячейке создано несколько элементов управления, даже если вы помещаете только текстовое поле. Вы можете использовать синтаксис FindControl для более надежного доступа к вашему контролю.

Если вы создали шаблонное поле с кнопкой ссылки затем аргумент команды для кнопки ссылки установите его значение: = <% # CType (Container, GridViewRow) .RowIndex%>

и приведенный выше код в команде rowview в gridview будет работать.

ИЛИ вы можете установить кнопки ссылку нажмите событие что-то вроде:

gridview1.rows (DirectCast (отправитель, LinkButton) .CommandArgument) .cells (1) .Controls (1) .Visible = истина

Вы можете перейти к ссылке, нажав кнопку мыши в шаблоном поле, отредактировав шаблон из графического интерфейса пользователя и дважды щелкнув по ссылке.

Я бы рекомендовал использовать параметр RowCommand и использовать Синтаксис FindControl, чтобы сделать ваше приложение более читаемым и более простым в обслуживании.

+0

Управление кнопкой ссылки недоступно на странице aspx.vb, так как оно находится внутри сетки. – vamsivanka

+0

Вы по-прежнему можете получить ссылку на кнопку click. См. Мое редактирование, чтобы более подробно объяснить параметры, которые у вас есть. :) – klabranche

+0

Да, это работает. Спасибо klabranche .. – vamsivanka

Смежные вопросы