Могу ли я вставить строку в GridView? - PullRequest
2 голосов
/ 19 марта 2009

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

Ответы [ 2 ]

5 голосов
/ 19 марта 2009

Общеизвестно, что трудно вставить строки в 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 голосов
/ 19 марта 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...