2009-03-19 5 views
2

Ich führe eine ASP.Net 2.0-Website, die Produkte in einem GridView anzeigt. Der Kunde hat gefragt, ob ich jede 10. Zeile eine Schaltfläche "In den Warenkorb" anzeigen lassen kann. Ich konnte das tun, indem ich den Knopf in eine eigene Spalte setzte und die Sichtbarkeit umblätterte, aber ich fragte mich, ob ich nach jeweils 10 Punkten eine neue Zeile einfügen könnte. Dadurch wird die Schaltfläche in eine eigene Zeile versetzt und nimmt keinen Spaltenbereich ein, wenn dieser nicht sichtbar ist. Irgendwelche Gedanken dazu, wie man das macht? TIAKann ich eine Zeile in eine GridView einfügen?

+0

meinst du wirklich 1.1? In diesem Fall beziehen Sie sich wahrscheinlich auf Datagrid oder etwas anderes, bitte überprüfen Sie das und aktualisieren Sie die Frage – eglasius

+0

Warum sollte das OP wirklich 1,1 bedeuten? –

+0

Weil ich ursprünglich 1.1 gesagt habe, aber nach Freddys Kommentar 2.0 geändert habe. – Sisiutl

Antwort

5

Es ist notorisch schwierig, Zeilen in eine GridView einzufügen. Haben Sie über einen Repeater nachgedacht?

das folgende Markup Gegeben:

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

Sie den folgenden Code-Behind verwenden könnte nach einer benutzerdefinierten Steuerelement einzufügen Unabhängig davon, welche Zeilen, die Sie so wählen:

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

Ich glaube nicht, dass es sowieso ist, dies direkt mit einem GridView zu tun (ohne in die Quelle zu brechen). Aber was Sie tun könnten, wäre, ein wenig Javascript zu verwenden, um das HTML für die Schaltfläche in das DOM der Seite zu injizieren, nachdem die GridView gerendert wurde.

Sie würden alle Zeilen in der von der Gridview erstellten Tabelle durchlaufen und dann nach jeder zehnten Zeile eine neue Zeile erstellen (mit allen Zellen oder einer einzelnen Spaltenzelle). In dieser Zelle fügen Sie die Schaltfläche mit dem OnClick Aufruf Ihrer JavaScript-Routine, um das Element in den Warenkorb hinzufügen.

Verwandte Themen