将面板或标签控件动态添加到数据网格

时间:2010-12-10 15:59:14

标签: datagrid controls panel dynamic

基于测试ItemTemplate内部现有面板/标签的值(使用Column1),我想在同一个ItemTemplate中添加另一个面板/标签(显示Column2)。

这是在自定义控件(.ascx)中,我想根据它(或其他面板)是否具有特定值来控制一个特定<asp:Panel>的添加。如果没有,我不希望创建<asp:Panel>(不应该在运行时生成<div>)。如果是,我想在里面生成<asp:Panel>  在

<asp:DataGrid><Columns><ItemTemplate>

示例:假设我们按预期获得Column2值,我想仅在它不为'0'时才渲染此值,否则我不想在给定<ItemTemplate>内创建额外标记。我将根据另一个标签控制何时渲染。

If(Column2!='0')
 //Adding some condition for Column1 ... 
  Create the `<div>` tag i.e Add the `<asp:Panel>` 

我该如何调用此代码?

这意味着,生成的html在某些情况下会有额外的div / span标记,并且不应该在其他情况下生成标记。 这可以避免Javascript。

1 个答案:

答案 0 :(得分:0)

可以使用<asp:PlaceHolder>控件将控件放在.ascx中的某个位置,例如: <asp:PlaceHolder id="placeHere" runat="server />并根据其他控件确定是否应添加此项。 例如:

If(Column1 condition)
 {
  Label addToGrid = new Label();
  addToGrid.Text = column1;
  addToGrid.Visible = true; 
  placeHere.Controls.Add(addToGrid);
}