2014-12-02 8 views
0

Я попытался объединить столбец заголовка от 2 до 1, но пример и я уже пробовал его с чем-то вроде этого GridView.Controls[0].Controls.AddAt(0, oGridViewRow); вопрос и пример, который плавал вокруг, просто добавлял 1 столбец, и добавьте его в верхнюю часть старого столбца, не объединяя его. Поэтому я хочу фактически слить 1 столбец, а остальная часть столбца останется прежней. Вот картина GridView колонки, что я хочу, чтобы объединить:Объединить заголовок столбца в gridview

GridView

Я хочу Объединить «Действие» заголовок столбца из 2 в 1. Таким образом, под колонкой действия, там будет редактировать и удалять ,

О я почти забыл, Вот GridView код, который обрабатывать столбец действий:

<asp:CommandField ShowEditButton="true" HeaderText="Action"/> 

     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="linkDelete" runat="server" 
        CommandArgument = '<%# Eval("XXX")%>' 
        OnClientClick = "return confirm('Do you want to delete?')" 
        Text = "Delete" OnClick = "DeleteDetail"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 

ответ

2

Хотя я строго против жесткого кодирования, это то, что у меня есть, вы можете написать это в случае «RowDataBound» из GridView: -

if (e.Row.RowType == DataControlRowType.Header) 
{ 
     e.Row.Cells[3].ColumnSpan = 2; 
     e.Row.Cells[4].Visible = false; 
     e.Row.Cells[3].Text = "Action"; 
} 

Здесь Вам нужно Изменение индекса ячейки в соответствии с ваш дизайн сетки.

+0

Да, спасибо, парень, наконец, он работает. Мне просто нужно изменить индекс и сделать столбец, который я хочу превратить в невидимый. – Nicolas

1

Вы можете использовать шаблоны для настройки, как ваш заголовок столбца и данные выглядят Ниже очень упрощенный пример, должен показать желаемый результат Но вам нужно будет работать на hadnling Редактировать и удалить действия, свой собственный путь

<asp:GridView ID="GridView1" runat="server">    
     <Columns> 
      <asp:TemplateField> 
       <HeaderTemplate> 
        <div> Action </div> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <a href="#">Edit</a> | <a href="#">Delete</a> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

Как вы видите, моя идея не сливаясь заголовки обоих столбцов. Скорее, я помещал данные из обоих столбцов в один столбец под одним заголовком. Я думаю, что он достигает такого же результата.

+0

Да, я уже обрабатываю действие редактирования и удаления, но не используя href, вместо этого я использую linkButton и showEditButton, которые уже предоставлены. снова проверьте вопрос, чтобы увидеть код, я его уже отредактировал. И для href one, я не хочу использовать его, потому что он настолько уязвим. Спасибо в любом случае – Nicolas

+0

извините, я не имел в виду использование href в специфическом, поэтому я сказал «очень упрощенный пример». Я просто предоставлял идею шаблонов в качестве решения. Таким образом, вы можете их заменить LinkButtons. Решение Rahul-Singh хорошо, но, как он уже упоминал, он жестко закодирован, вам нужно обновлять индексы каждый раз, когда число столбцов меняется – Gouda

+0

Да, это правильно, что это плохо для жесткого кодирования, особенно если динамический динамический столбец изменен, И ваши подходы используются только под столбцом 1 и просто, если я использую его с самого начала. – Nicolas

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