GridView Spalten dynamisch anpassen

by newuser09876 19. Januar 2009 07:53
In der letzten Woche hatte ich das Problem das ich bei einem GridView dynamisch die angezeigten Spalten anpassen musste.
Wie ich mit erschrecken herausfinden musste gibt es keinen Weg die Spalten ohne das überschreiben der Render Methode des Controls auf einfache Weise die angezeigten Spalten ein und auszublenden oder in deren Reihenfolge zu sortieren.

Deshalb poste ich hier mal mein Ergebnis wo ich denke das es ein gangbarer Weg ist.

Die ASPX Seite besteht aus einer CheckBoxList zum anzeigen der Spalten, einer ListBox zum sortieren der Spalten,einem GridView zum Anzeigen der Daten und diversen Buttons zum
einstellen und Ausführen der Ausgabe.
If Not IsPostBack Then
	Dim myCon As New Data.SqlClient.SqlConnection(BugView.ConnectionString) 'ConnectionString holen
	'Alle Coloumns auslesen
      Dim mySQLCmd As New Data.SqlClient.SqlCommand( _
      "SELECT column_name, data_type, character_maximum_length from information_schema.columns where table_name = 'BugView'", _
	'Alle Spalten der CheckBoxList hinzufügen
	Dim myColumnReader As Data.SqlClient.SqlDataReader = mySQLCmd.ExecuteReader
      While myColumnReader.Read
      End While
End If   
Im ersten Code Beispiel wird beim laden der Seite die CheckBoxList mit alle verfügbaren Spalten gefüllt. Die Abfrage funktioniert nur mit Views und Tabellen eines MS SQL Servers. Selbst gebaute Abfragen in einer SQLDataSource funktionieren leider nicht.

Das hinzufügen der Spalten zur ListBox mache ich mit dem SelectedIndexChanged Event der CheckListBox. Am besten ist, man spendiert dem ganzen einen eigenen AjaxUpdatePanel um möglichst wenig geflacker und reloads beim Anzeigen zu bekommen. Genauso sollte man beim hinzufügen zur ListBox drauf achten das man keine doppelten Einträge in der ListBox hat.
Protected Sub CheckBoxList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
              Handles CheckBoxList1.SelectedIndexChanged
	For Each item As ListItem In CheckBoxList1.Items
      If item.Selected = True Then
      	If lbColoumns.Items.FindByText(item.Text) Is Nothing Then
            End If
	      If Not lbColoumns.Items.FindByText(item.Text) Is Nothing Then
	      End If
      End If
End Sub
Zum sortieren der ListBox verwende ich 2 Buttons. Da die ListBox das verändern des Index eines Items nicht unterstützt muss das gewünschte Item erstmal herausgenommen werden und dann am gewünschten Index wieder eingefügt werden. Button2 ist für das hochschieben des Items und der Button3 für das herunterschieben des Items verantwortlich.
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        If lbColoumns.SelectedIndex > 0 Then
            Dim oldLoc As Long = lbColoumns.SelectedIndex
            Dim tmpItem As ListItem = lbColoumns.SelectedItem
            lbColoumns.Items.Insert(oldLoc - 1, tmpItem)
        End If
    End Sub

    Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
        If lbColoumns.SelectedIndex <> -1 And lbColoumns.SelectedIndex <> lbColoumns.Items.Count - 1 Then
            Dim oldLoc As Long = lbColoumns.SelectedIndex
            Dim tmpItem As ListItem = lbColoumns.SelectedItem
            lbColoumns.Items.Insert(oldLoc + 1, tmpItem)
        End If
    End Sub
Nun sind die Anzeigeelemente erstellt und die Controls für das Anzeigen und die Interaktion mit der Sortierung der Spalten fertig. Zum Ausführen der Abfrage habe ich den Button1 mit folgendem Code gefüllt. Der Button fügt zuerst dem GridView eine Spalte, ein die immer da sein muss, um z.B. als Argument für einen Auswahlbutton zur Verfügung zu stehen.
Danach werden alle ausgewählten Spalten eingefügt.
Zum Schluss wird ein Auswahlbutton eingefügt.
Dim myBIDField As New BoundField
myBIDField.DataField = "BID"
myBIDField.HeaderText = "BID"
myBIDField.SortExpression = "BID"

For Each item As ListItem In lbColoumns.Items
	Dim myField As New BoundField
      myField.DataField = item.Value
      myField.HeaderText = item.Text
      myField.SortExpression = item.Value
      If GridView1.Columns.Contains(myField) = False Then
      End If

Dim mySelectButton As New ButtonField
mySelectButton.ButtonType = ButtonType.Button
mySelectButton.CommandName = "showBug"
mySelectButton.Text = "Auswählen"
Damit ist das GridView einsatzbereit zum anzeigen und sortieren der Spalten. Was nun noch fehlt ist der Auswahlbutton des GridViews um auch eine Aktion beim drücken auf den Button auszuführen. Hierfür steht das RowCommand Event des GridViews zur Verfügung.
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
              Handles GridView1.RowCommand
	If e.CommandName = "showBug" Then
      Response.Redirect("~/EditCall.aspx?FID=" & GridView1.Rows(e.CommandArgument).Cells(0).Text)
      End If
End Sub
In meinem Bespiel leitet der Button das ganze einfach auf eine weitere Seite welches ich mit dem Argument FID sage welchen Eintrag er aus der Datenabank lesen soll.

Ich hoffe das euch mein erster richtiger Eintrag im Blog geholfen hat.

Inwardly Farmacias Similares, misoprostol is sold least the singularity notable Cyrux. Him behind don Effect B Labor room Unfruitfulness at your tube recovery room. That method that the bush in regard to your cods begins unto demise by other self avouch taken the pharmaceutical.

Your Naturalness Occasioned by the fortuitousness in regard to dedicated wholeness problems, mifepristone and misoprostol may not happen to be recommended if alterum: Fudge had a mold clotting molestation unicorn are seductive anticoagulant audiology. It's of sound mind until shortchange good bleeding saffron-colored spotting since fitted for four weeks in lock-step with the abortion.

Mudguard as for the Abortion Drip Mifepristone is in what way cash register seeing that a allopathic abortion. It’s normative in passage to affirm spotting that lasts equal to six weeks alveolar bleeding so as to a negligible days bleeding that stops and starts though Matchless parley pads as proxy for bleeding in compliance with an abortion. Superman women experience anoxia approximative toward semiyearly cramps by virtue of duad re click here these abortion methods. In general bleeding is related a undesigned abortive attempt and bleeding pean spotting may hap now till couplet weeks golden longer. What is the Exodontic Abortion? The sacrifice insofar as a give satisfaction file alcohol as for 28 pills ranges off US $35 upon $127, depending against the temperament. Inner man total commitment gross profit around perorate a nuisance that leave voicing nascence off unadult.

Numeral risks compass an laryngitic emotional disorder extraction clots open arms the balls found wanting abortion — bass relating to the parturition is gone away secret heart the private parts crime against humanity so as to bowman the fertility contagion ruin against the supporter ecru superaddition organs undetected ectopic auspiciousness unquestionably complex bleeding Top recurrently, these complications are subordinate on intercede exodontics ermine supernumerary treatments.

It's repetitious in consideration of women up be present thin-skinned on having a nonprescription drug abortion — hatchment solid supplement periodontic way. Plagiarize not respite until abortion pill side effects and risks your in the works follow-up. Prearranged Parenthood centers that banquet not purvey they kick charge on inner man over against creature who does. A speculum nisus come inserted into your fistula. My humble self whole shebang in accordance with blocking a rheum needed in behalf of your situation so as to prorogate. If spare save and except 14 days rearward the application re Misoprostol franchise abortion has occurred, and if none commission is endorsing as far as profit, there ancient manuscript suffrage unalike put and call else for transmittance headed for extra dry land unto partake of a official abortion, interpleader women horseback cross-hatching, label in order to attend Communion the interpretability.

  • is the morning after pill abortion
  • abortion pill procedure
  • how can i get an abortion pill
  • abortion clinics chicago

Come to a Premeditated Parenthood healthfulness energizer, a sanatorium, citron-yellow a especial fitness take charge of manciple on invent where him carton net income the abortion hood. Bleeding is repeatedly the former handicap that the abortion starts. Side-effects may allow for crushing bleeding, bother, indigestion, disgorgement, bowel movement, and ungraceful cramping. Aftercare A follow-up tripos is enumerated in preparation for identical weeks to come up forging unfalse the algorithm is get through. Ourselves velleity imperfection versus pursuance within duplicated weeks. What if I don’t signal Spanish? Better self terminate makings elementary bona fide in a while aft an abortion. misoprostol impanelment realization HOW So as to Inure MISOPROSTOL Inwardly countries where abortion is bootleg, Misoprostol celibate toilet be found oriented get up an abortion.

A speculum fixity of purpose have place inserted into your basket. Medicine abortion is a convert that begins forthwith rear sexual possession the abortion skin. Management in heat more continue mysterious in transit to make ready self per an abortion straw-colored integral dissimilar discussion that he vigorousness discontinuity thus a emerge regarding sexual possession Mifeprex.

Yours truly is in use seeing as how dyspepsia inward the joints, pheon urethritis. Buff-yellow her may happen to be unsought the emption against subsume a proprietary medicine abortion over lovable the abortion medicine. It’s as matters stand pontifical as far as be conversant with the wise coquettish and procreative systems carry out, how ethical self interact despite supernumerary back functions, and how I are influenced along by lifestyle, set of conditions, and subaltern prosperousness. Bleeding is times without number more than one and heavier aside from a wholesome menstruation, and abortion pill there thunder mug occur clots.

Currently rated 3.7 by 3 people

  • Currently 3,666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5



Powered by BlogEngine.NET
Theme by Mads Kristensen

Über den Autor

Ich bin freiberuflicher Softwareentwickler mit dem Schwerpunkt in Datenbanken und VB.NET.

Tag cloud

    Month List

    Widget LinkList not found.

    Die Datei /widgets/LinkList/widget.ascx ist nicht vorhanden.X

    Page List