【问题标题】:how to clear generated columns without clearing ItemTemplate fields如何在不清除 ItemTemplate 字段的情况下清除生成的列
【发布时间】:2012-08-01 07:22:26
【问题描述】:

我有一个通过代码生成列的网格视图,还有来自 aspx 的 ItemTemplate 字段,如何在不清除模板字段的情况下清除从代码生成的列?

我之前帖子中的代码

TemplateField templateField = new TemplateField();
TemplateField uid = new TemplateField();
uid.HeaderText = "userid";
uid.ItemTemplate = new AddItemTemplate(ListItemType.Item, "userid");
GridView1.Columns.Add(uid);
for (int i = 0; i < dt.Columns.Count; i++)
{
   BoundField boundField = new BoundField();
   if (dt.Columns[i].ColumnName.ToString() != "userid")
{
  boundField.DataField = dt.Columns[i].ColumnName.ToString();
  boundField.HeaderText = dt.Columns[i].ColumnName.ToString();
  GridView1.Columns.Add(boundField);
}
}

aspx

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <tr>
                    <td>
                        <div id="div<%# Eval("userid") %>" >
                            <asp:GridView ID="GridView2" AllowSorting="true" >
                                <Columns>
                                    --code--
                                </Columns>
                            </asp:GridView>
                        </div>
                    </td>
                </tr>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

【问题讨论】:

  • 您要删除/清除列或数据吗?
  • 实际上我需要从生成的列中清除数据,但如果不可能,我需要删除它们
  • 我修改了我的帖子,添加了我之前帖子中的代码
  • 所以你想清除GridView2数据源。不是吗?
  • 我需要在不删除 ItemTemplate 字段的情况下清除网格视图的内容,因为我遇到了问题,当我第一次运行网格视图时它工作得很好,但是当再次从表单中选择变量时运行它我收到错误,网格视图仍然包含以前运行的列

标签: c# asp.net gridview itemtemplate templatefield


【解决方案1】:

1) 您可以尝试重新绑定到完全不同的数据源。一种返回所有自定义字段,另一种仅返回 Id

2) 更简单的方法是隐藏 YourGridView.Columns[0].Visible = false; 之类的列

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2022-01-12
    • 2014-02-07
    • 1970-01-01
    • 2019-10-04
    相关资源
    最近更新 更多