2009-08-18 72 views
1

我有一個註釋文本,鏈接按鈕,以及的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> 

+0

您的代碼顯示不正確,請修復。 – 2009-08-18 04:27:21

回答

2

如果不使用JavaScript/AJAX則鏈接按鈕的單擊事件設置文本框的可見價值爲true。鏈接按鈕會自動發送回傳,所以這將起作用,除非您將鏈接按鈕設置爲不自動回發。

編輯:訪問鏈接按鈕

有幾種方法取決於你如何設置網格。如果這是您正在使用的命令字段或按鈕字段,則可以使用RowCommand和e.CommandArgument到現在所在的行,然後將該文本框設置爲true。下面是一個示例:

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

小區被設置爲你想要的工作列上,並對照#設置爲你想要與細胞工作的控制。即使只放置文本框,單元格中也會創建多個控件。您可以使用FindControl語法更可靠地掌控自己。

如果用鏈接按鈕創建的模板字段然後對鏈接按鈕的命令參數設置它的值:= <%#CTYPE(容器,GridViewRow).RowIndex%>

和上述代碼在GridView的rowcommand將工作。

或者您也可以設置鏈接按鈕點擊事件是這樣的:

gridview1.rows(directcast(發件人的LinkBut​​ton).CommandArgument).cells(1).Controls(1)。可見= TRUE

您可以通過在GUI中編輯模板並雙擊鏈接按鈕來獲取模板字段中的鏈接按鈕單擊事件。

我會推薦使用RowCommand選項並使用FindControl語法使您的應用程序更易讀易維護。

+0

鏈接按鈕控件在aspx.vb頁面中不可用,因爲它位於網格視圖內。 – vamsivanka 2009-08-18 11:12:36

+0

你仍然可以在鏈接按鈕點擊事件。看看我的編輯,更詳細地解釋你的選擇。 :) – klabranche 2009-08-18 15:11:51

+0

是的,它工作。謝謝klabranche .. – vamsivanka 2009-08-19 16:57:36