基于测试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。
答案 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);
}