首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用类扩展网格视图作为控件

使用类扩展网格视图作为控件
EN

Stack Overflow用户
提问于 2012-12-04 21:14:11
回答 1查看 2.1K关注 0票数 1

我创建了一个扩展gridview的类,将使用autogeneratecolumns=true时生成的列添加到columns集合中。

代码语言:javascript
运行
复制
using System;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;

public class GridViewEx1 : GridView
{
private DataControlFieldCollection originalColumns;

public GridViewEx1()
    : base()
{
}
public void RecordColumns()
{
    originalColumns = new DataControlFieldCollection();
    foreach (DataControlField column in Columns)
        originalColumns.Add(column as DataControlField);
}

public void ResetColumns()
{
    if (originalColumns == null)
        RecordColumns();
    else
    {
        Columns.Clear();
        foreach (DataControlField column in originalColumns)
            Columns.Add(column as DataControlField);
    }
}

protected override ICollection CreateColumns(PagedDataSource dataSource, bool useDataSource)
{
    ResetColumns();
    ICollection generatedColumns = base.CreateColumns(dataSource, useDataSource);
    foreach (DataControlField column in generatedColumns)
        if (!originalColumns.Contains(column))
            Columns.Add(column as DataControlField);
    return Columns;
}
}

但是我不知道如何在asp.net页面中使用这个控件?

我尝试使用我的原始网格视图,并像这样初始化它

代码语言:javascript
运行
复制
gv1 = new GridViewEx1(); // gv1 is the id of my gridview

但这只会使我的网格视图完全为空。

EN

Stack Overflow用户

回答已采纳

发布于 2012-12-04 22:46:51

你需要在页面上注册你的控件。

代码语言:javascript
运行
复制
<%@ Register TagPrefix="CustomControls" Namespace="MyProject.MyControlNamespace" Assembly="MyProject" %>

<CustomControls:GridViewEx1 runat="server" />

有关注册控件的更多信息:http://weblogs.asp.net/scottgu/archive/2006/11/26/tip-trick-how-to-register-user-controls-and-custom-controls-in-web-config.aspx

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13703803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档