2011-03-25 19 views
2

我如下定義的示例類#數據綁定列表:Ç<string>到的DataGridColumn

class Shops : INotifyPropertyChanged 
{ 
    private int _productId; 
     private string _productName; 
     private List<string> _test; 
    private bool _active; 

    public int ProductId 
     { 
      get { return _productId; } 
      set { _productId = value; } 
     } 

    public string ProductName 
     { 
      get { return _productName; } 
      set { _productName = value; } 
     } 

     public List<string> Test 
     { 
      get { return _test; } 
      set { _test = value; } 
     } 

     public bool Active 
     { 
      get { return _active; } 
      set { _active = value; } 
     } 
} 

當我數據綁定這一個DataGridView,除了測試一切都正確的約束。 Active的複選框也是在datagridview中自動創建的。

是否有辦法告訴數據綁定List需要綁定爲ComboBox?

謝謝你的時間。

回答

1

我假設您正在嘗試將列表綁定到標記爲ComboBox的列單元格。

您需要指定數據網格「Columns」集合中的列,併爲該列設置數據綁定。如果您已經這樣做了,請發佈更詳細的說明。

+0

的結合是在運行時。所以我不會自己添加列。綁定正在照顧這一點。 – Shift 2011-03-25 20:57:58

+0

@Shift - 您只能指定DataGridView的columns屬性中需要特殊行爲的一個特殊列,所有其他列將動態構建和綁定。只要您爲該列正確設置了綁定,就應該按照您的預期行事。順便說一句:這是Winforms還是Webforms? – 2011-03-28 16:52:38

1

試試這個,使用模板字段添加組合框,然後將數據添加到OnRowDataBound事件中。

<asp:GridView ID="GridView1" runat="server" 
      OnRowDataBound="bindCombobox"> 

      <Columns> 

      //other columns 

      <asp:TemplateField HeaderText="status" > 
      <ItemTemplate> 
       <asp:DropDownList ID="comboBox1" runat="server"></asp:DropDownList> 
      </ItemTemplate> 
      </asp:TemplateField> 


      </Columns> 

</asp:GridView> 
在後面的代碼

public void bindComboBox(object sender, GridViewRowEventArgs e) 
     { 

      if (e.Row.RowType != DataControlRowType.DataRow) 
      { 
       return; 
      } 

      DropDownList ddlist = (DropDownList)e.Row.FindControl("comboBox1"); 
      ddlist.AppendDataBoundItems = true; 
      ddlist.DataSource = Test; //insert your list here 
      ddlist.DataBind(); 

     } 
相關問題