Jeg har et GridView med nogle knapper og lidt data. Det ser fint ud og virker som det skal. Det ene buttonfield vil jeg dog kun have vist hvis nogle bestemte kriterier er opfyldt (der skal køres noget SQL og laves lidt andre beregninger). Hvordan kan jeg gøre det? Så vidt jeg ved er der en event der hedder PreRender? Er det måske den man skal bruge?
Kan jeg vise én knap (med én tekst og ét CommandName) i nogle bestemte tilfælde og en anden knap (med en anden tekst og et andet CommandName) i nogle andre tilfælde? (Altså evaluere hver enkelt række og bestemme hvordan den skal se ud mht. knapper). Og kan man måske også bestemme baggrundsfarve på de enkelte rækker?
du kan bruge en template column: <ItemTemplate> <asp:Button ID="Action" OnClick="Action_Click" runat="server" CssClass="button" Text='<%# FormatActionKnap((bool)Eval("entekst"))%>' CommandName='<%# FormatActionKnap((bool)Eval("entekst"))%>' /> </ItemTemplate>
i codebehind har du: public string FormatActionKnap(string entekst) { string tekst = "etellerandet" return tekst }
Men det giver mig ikke mulighed for helt at lade være med at vise knappen og heller ikke for at kunne ændre farver på rækkerne? Hvorfor caster du egentlig Eval("entekst") som bool?
OnRowCreated="Gridview_RowCreated" og en tom template column med en tom itemtemplate i codebehind har du : protected void Gridview_RowCreated(object sender, GridViewRowEventArgs e) { her kan du bruger: if(kriterier er opfyldt) { Button btn = new Button(); btn.Text = "test"; e.Row.Cells[indexpåtomcolumn].Controls.Add(btn); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.