:Francis: Skrevet 28. desember 2009 Del Skrevet 28. desember 2009 Jeg har skrevet et etter mitt syn ganske bra nested gridview i klassisk asp, hvor jeg bygger opp tabellen dynamisk, og skjuler/viser "nested raden" og sorterer tabellen med jQuery. Nå ønsker jeg å skrive det om til .NET. Hvordan kan jeg på en lettest mulig måte kode det om? Jeg bygger opp tabellen slik: <thead> <tr> <th class="expandCol"> </th> <% for each field in sortedFields if field <> "" then Response.write("<th>" & field & " </th>") response.write(field) end if next %> </tr> </thead> <tbody> 'bygges opp på samme måte som header </tbody> Jeg skjuler/viser og sorterer slik: $(function() { $(".inner tr:odd").addClass("inner_odd"); $(".inner tr:even").addClass("inner_even"); $("#tabell tr.inner").hide(); $("#tabell").tablesorter({ headers: { 0: { sorter: false } } }); $("td p").click(function(){ var show = $(this).parent().parent().parent().next().css('display'); //alert(show); if(show != 'none'){ //alert('visible'); $(this).parent().parent().parent().next().hide(); $(this).text("+"); } else { //alert('hidden'); $(this).parent().parent().parent().next().show(); $(this).text("-"); $(this).parent().parent().parent().next().removeClass(); $(this).parent().parent().parent().next().addClass("inner"); } }); }); Jeg vet jeg kan bruke GridView kontrollen i .NET, og har også laget en variant med GridView, men jeg følte ikke at jeg fikk god nok kontroll på det indre gridet. Mvh Francis Lenke til kommentar
:Francis: Skrevet 29. desember 2009 Forfatter Del Skrevet 29. desember 2009 (endret) Jeg har kommet et godt stykke på vei med en .NET variant, hvor jeg faktisk bruker GridView som basis. Hittil har jeg kun fått det til med VB .NET, men ønsker å skrive det i C#. jeg har en SqlDataSource (til NorthWind for testing): <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connString %>" SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [Address], [City], [PostalCode], [Phone] FROM [Customers]"> </asp:SqlDataSource> Jeg bruker dette for å linke det yttre gridet til det innre: Protected Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) ..... dbSrc.SelectCommand = "SELECT * FROM Orders WHERE CustomerID = '" & _ e.Row.DataItem("CustomerID").ToString & "' ORDER BY OrderDate" ..... End Sub Problemet er uthenting av "CustomerID i C#. Dette kompilerer ikke, da DataItem ikke ser ut til å støtte indeksering i C#. protected void gv_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { dbSrc.SelectCommand = "SELECT * FROM Orders WHERE CustomerID = '" + e.Row.DataItem["CustomerID"].ToString() + "' ORDER BY OrderDate"; } Dette er det nærmeste jeg har kommet, men da må CustomerID være synlig, og det er litt dumt, da det er helt irrelevant for brukeren hvilken databaseindex en kunde har. protected void gv_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { dbSrc.SelectCommand = "SELECT * FROM Orders WHERE CustomerID = '" + e.Row.Cells[1].Text + "' ORDER BY OrderDate"; } Jeg vet jeg kunne brukt et ObjectDataSource med en DataTable, og hentet verdiene derfra, men jeg vil gjerne få det til slik i første omgang . Setter stor pris på all hjelp . Mvh Francis Endret 29. desember 2009 av :Francis: Lenke til kommentar
:Francis: Skrevet 29. desember 2009 Forfatter Del Skrevet 29. desember 2009 (endret) Yay - var bare en cast som skulle til . dbSrc.SelectCommand = "SELECT * FROM Orders WHERE CustomerID = '" + ((DataRowView)e.Row.DataItem)["CustomerID"].ToString() + "' ORDER BY OrderDate"; Francis Endret 29. desember 2009 av :Francis: Lenke til kommentar
Trondster Skrevet 29. desember 2009 Del Skrevet 29. desember 2009 Åh fysjafysjafysj! Hva har vi lært om konkatenert SQL, Francis? Lenke til kommentar
:Francis: Skrevet 4. januar 2010 Forfatter Del Skrevet 4. januar 2010 Åh fysjafysjafysj! Hva har vi lært om konkatenert SQL, Francis? Hehe, du kan slå deg til ro med at sånt blir fikset før release . Francis Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå