我正在接受并扩展 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 /]'s
<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 就无法分离。
有任何想法吗?