2013-01-08 36 views
0

我有一個GridView,其中一個綁定字段在用戶從下拉列表中選擇後填充在代碼隱藏中。這個填充很好,但是我還有兩個帶有TemplateFields複選框的列。這些從不顯示在這個gridview中。 這裏的ASPX:TemplateFields中的控件在GridView中不顯示

<asp:UpdatePanel ID="clientServerUpdatePanel" runat="server"> 
     <ContentTemplate> 
      <asp:GridView ID="clientServerGridView" runat="server" AutoGenerateColumns="False"> 
       <Columns> 
        <asp:BoundField HeaderText="Operating System" DataField="OS" /> 
        <asp:TemplateField HeaderText="Client" > 
         <asp:ItemTemplate> 
          <asp:CheckBox runat="server" ID="clientCheckBox" Checked="false" /> 
         </asp:ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Server"> 
         <asp:ItemTemplate> 
          <asp:Checkbox runat="server" ID="serverCheckBox" Checked="false" /> 
         </asp:ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

這裏的relavent代碼隱藏這是擺在Click事件處理程序:

Dim dt As DataTable = New DataTable() 
dt.Columns.Add(New DataColumn("OS", System.Type.GetType("System.String"))) 

For Each OSItem As ListItem In Me.defaultOSesListBox.Items 
    If Not OSItem.Selected Then 
     Continue For 
    End If 

    Dim dr As DataRow = dt.NewRow() 
    Dim os As String = OSItem.Text 
    dr("OS") = os 
    dt.Rows.Add(dr) 
Next 

Me.clientServerGridView.DataSource = dt 
Me.clientServerGridView.DataBind() 

有沒有人有一個想法是什麼我的問題的根源是什麼?

編輯:我需要有包裹在

<ItemTemplate> 

,而不是

<asp:ItemTemplate> 
+0

如果您查看頁面源代碼(瀏覽器中的HTML),您能看到那裏的複選框嗎? – geedubb

+0

@geedubb只有updatepanel的div。但是這是可以預料的,因爲這是動態填充的(我認爲?)。 編輯:對不起,我使用了鉻開發工具,所以我現在可以看到它。不,這兩個複選框列中只有' '。我不明白他們在哪裏被丟棄。 – wieders

回答

1

複選框,我發現這個問題。我曾複選框包裹在

<asp:ItemTemplate> 

當它應該一直當我做出這個改變

<ItemTemplate> 

的問題是立即修復。