在GridView上方直接动态添加控件

时间:2012-06-25 10:38:57

标签: gridview webforms add

我正在接受并扩展GridView控件:

public class MightyGridView : GridView
{
    // ...
}

我想在GridView上方添加一些按钮:

    protected override void OnRowCreated(GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            Parent.Controls.AddAt(Parent.Controls.IndexOf(this) - 1, new LiteralControl("<div>"));
            Parent.Controls.AddAt(Parent.Controls.IndexOf(this) - 1, new ImageButton() { ImageUrl = _images[_imageTypes.ShowAllColumns], Width = 16 });
            Parent.Controls.AddAt(Parent.Controls.IndexOf(this) - 1, new LiteralControl("</div>"));

这可以解决一个微小的问题:如果我在GridView之前有一些[br /]的话

    <asp:Button ID="Button3" runat="server" Text="Button" />
    <br /> <!-- This one! -->
    <asp:mightygridview
        ID="mightyGridView"
        runat="server"
        AllowSorting="true"
        AllowHiding="true"
        autogenerateeditbutton="true"
        OnRowEditing="mightyGridView_RowEditing"
        OnRowCancelingEdit="mightyGridView_RowCancelingEdit"
        OnRowUpdating="mightyGridView_RowUpdating">
    </asp:mightygridview>

然后在按钮之后添加控件,而(或任何其他标签)将我的控件和GridView分开。

一种解决方案是将我的控件插入到正在呈现GridView表的控件中。所以GridView的标签包含在一个。但我认为我无法访问此生成,因为它没有服务器端控件(没有runat =“server”)。如果我能实现这一点,我的控件和相应的GridView就无法分开。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

仍未找到解决方案。