2015-11-16 76 views
0

我有一個GridView,我添加文本框來everycell上運行。不過,我似乎無法使用findcontrol不能在GridView中找到能夠控制的動態控制

這裏是我的文本框添加到GridView來訪問這些控件:

If e.Row.RowType = DataControlRowType.DataRow Then 
     For i = 1 To e.Row.Cells.Count - 1 

      Dim txtSchedule As New TextBox() 

      txtSchedule.ID = "txtSchedule" & i.ToString 

      e.Row.Cells(i).Controls.Add(txtSchedule) 
     Next 
    End If 

當我去找到控制它說,他們是沒有:

GridView1.Rows(0).Cells(cellindex).FindControl("txtSchedule" & cellindex.ToString) 

編輯 的問題是,獲取填充文本框後,它重新創建文本框,因爲我在創建

行有他們

回答

1

您添加的控制行的單元格中使用的FindControl:

GridView1.Rows(0).Cells(cellindex).FindControl("txtSchedule" & cellindex.ToString) 
+0

謝謝你,問題是現在,它增加了對創建一行文本框,之後我填充這些文本框,它再現了他們 – Dman

+0

你的意思是它讓重複的文本框? – N0Alias

0

動態添加的文本框事實上並不存在。因此,您無法訪問或找到它。您可以物理添加文本框格內模板列並設置其知名度如下面的代碼段:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server"></asp:Label>      
     <asp:TextBox ID="TextBox1" runat="server" Visible="False"></asp:TextBox> 
    </ItemTemplate> 
</asp:TemplateField> 

在此之後,如果你願意,你可以找到文本框和切換其背後的代碼的可見性。