2009-03-19 3 views
2

Я поддерживаю веб-сайт ASP.Net 2.0, который отображает продукты в GridView. Клиент спросил, могу ли я отображать кнопку «Добавить в корзину» каждую десятую строку. Я мог бы сделать это, поместив кнопку в свой столбец и перевернув видимость, но я подумал, могу ли я добавить новую строку после каждых 10 предметов. Это ставит кнопку на свою строку и не занимает пространство столбца, когда оно не видно. Любые мысли о том, как это сделать? TIAМогу ли я вставить строку в GridView?

+0

вы действительно означает 1.1? в этом случае вы, вероятно, ссылаетесь на datagrid или на что-то еще, пожалуйста, проверьте это и обновите вопрос – eglasius

+0

Почему OP действительно означает 1.1? –

+0

Потому что я изначально сказал 1.1, но изменил его на 2.0 после комментария Фредди. – Sisiutl

ответ

5

Как правило, трудно вставлять строки в GridView. Вы думали об использовании ретранслятора?

Учитывая следующую разметку:

<asp:Repeater id="repeater" runat="server"> 
    <ItemTemplate> 
     <h1><%#Container.DataItem%></h1> 
    </ItemTemplate> 
</asp:Repeater> 

Вы могли бы использовать следующий код, после вставки пользовательского элемента управления после какой строки вы так выбираете:

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Collections.Generic; 

public partial class Default : Page 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     this.repeater.ItemCreated += repeater_ItemCreated; 

     base.OnInit(e); 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     this.repeater.DataSource = new List<String> 
     { 
      "one", "two", "three", "four", "five", "six", "seven" 
     }; 

     this.repeater.DataBind(); 

     base.OnLoad(e); 
    } 

    void repeater_ItemCreated(Object sender, RepeaterItemEventArgs e) 
    { 
     if (this.repeater.Items.Count > 0 
      && this.repeater.Items.Count % 3 == 0) 
     { 
      this.repeater.Controls.Add(new LiteralControl("<h4>hello world</h4>")); 
     } 
    } 
} 
2

Не думаю, что в любом случае это можно сделать с помощью GridView (без взлома источника). Но вы могли бы использовать некоторый javascript для ввода html для кнопки в DOM страницы после рендеринга GridView.

Вы должны перебирать все строки в таблице, созданные gridview, а затем после каждой 10-й строки создавать новую строку (со всеми ячейками или одной ячейкой colspan). Внутри этой ячейки вставьте кнопку с onClick, называя вашу javascript-процедуру, чтобы добавить элемент в корзину.

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