2010-06-14 69 views
0

這是設置: 我用LINQ to SQL查詢以編程方式填充我的gridview。然後我進入編輯模式,並希望與這樣的DropDownLists更換一些標準TextBox控件:ASP.NET - GridView - 如何以編程方式向單元添加和讀取新控件?

「摘自GridView1_RowEditing

Dim ddlist1 As New DropDownList 
    Dim res1 = From items1 In mydb.Items 
      Select items1.Col10 

    ddlist1.DataSource = res1 
    ddlist1.DataBind() 

    GridView1.Rows.Item(0).Cells(1).Controls.Add(ddlist1) 

在這一刻,我有我的GridView顯示標準文本框控件和新DDList控制(在第1欄中)。 問題是 - 我不能從RowUpdating方法中讀取DDList的值。看起來像DDList控件不在GridView1.Rows.Item(0).Cells(1).Controls集合中。 RowUpdating方法只能看到標準的TextBox控件並可以讀取它的值。 歡迎任何建議。我只是不明白的東西在這裏:(

回答

0

使用模板列,然後你可以使用的FindControl

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList ID="DropDownList1" runat="server"> 
       </asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

找到您的下拉...

Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating 

    Dim ddl = CType(GridView1.Rows(e.RowIndex).Cells(1).FindControl("DropDownList1"), DropDownList) 

End Sub 
相關問題