2013-07-04 52 views
1

我正在處理一個項目,該項目將保存修復服務的記錄並將其列入頁面。我有一個gridview列出記錄。該gridview將包含一個下拉列表,它將顯示有關當前記錄狀態的選項。我可以用這個創建此下拉列表中的ASP方面:在GridView Asp.NET中創建一個DropDownList

<asp:TemplateField> 
     <ItemTemplate> 
      <asp:DropDownList runat="server" ID="test_drop1"> 
      </asp:DropDownList> 
     </ItemTemplate> 
</asp:TemplateField> 

,但在我的情況,如果我可以創建在C#中一側的GridView,它會更好。問題是我無法將下拉列表分配給c#中的templatefield。任何想法如何做到這一點?提前致謝。

+0

你目前的代碼有什麼問題?我看到這段代碼沒有問題,它應該可以工作。 – sarwar026

+0

正如我所說這是在asp代碼中沒有問題,但我想在c#代碼中創建gridview:) –

回答

0
private void BindGrid() 
     { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("Test DropDown"); 

     Control container = new Control(); 
     TemplateField tf = new TemplateField(); 
     string chkRole = "ddlTest"; 


     tf.ItemTemplate = new CreateDropDownList(chkRole); 
     //tf.HeaderText = dt.Columns[i].ColumnName; 
     this.gvDDL.Columns.Add(tf); 
     gvDDL.DataSource = dt; 
     gvDDL.DataBind(); 
    } 

} 
public class CreateDropDownList:ITemplate 
{ 
    string checkboxID; 
    public CreateDropDownList(string id) 
    { 
     this.checkboxID = id; 
     // 
     // TODO: Add constructor logic here 
     // 
    } 
    public void InstantiateIn(Control container) 
    { 
     DropDownList ddl = new DropDownList(); 
     ddl.ID = checkboxID; 
     container.Controls.Add(ddl); 
    } 
} 

請嘗試這段代碼。這樣,您可以在運行時添加下拉列表,而無需在aspx頁面中定義它。

+0

您綁定的數據表需要有一些行,否則下拉列表不會顯示出來。 – Gayatri

相關問題