2013-07-04 53 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

相关问题