2012-06-25 2 views
0

I'm всеобъемлющ и расширение управления GridView:Динамически добавить контроль непосредственно над 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>")); 

это работает отлично с одной крошечной крошечной проблемой: если у меня есть некоторые [br /] до GridView

<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 не могли быть разделены.

Любые идеи?

ответ

Смежные вопросы