【问题标题】:add a panel or label control dynamically to a datagrid将面板或标签控件动态添加到数据网格
【发布时间】:2011-05-23 13:54:46
【问题描述】:

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

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

<asp:DataGrid><Columns><ItemTemplate>

示例:假设我们按预期获得 Column2 值,我只想在它不是“0”时呈现这个值,如果不是,我不想在给定的 &lt;ItemTemplate&gt; 内创建额外的标签。我将控制它何时基于另一个标签呈现。

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

我还应该如何调用此代码?

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

【问题讨论】:

  • 什么框架?小部件?等等?问题在哪里?
  • 如果这是asp.net,那么答案是肯定的。您可能想用一些代码重新表述和扩展您的问题以获得更有用的答案。

标签: datagrid controls panel dynamic


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多