Avatar billede jriff Nybegynder
10. februar 2006 - 20:47 Der er 4 kommentarer

GridView og knapper

Hej Alle!

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?

På forhånd tak

- Jacob
Avatar billede dr_chaos Nybegynder
10. februar 2006 - 20:57 #1
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 
}
Avatar billede jriff Nybegynder
11. februar 2006 - 07:33 #2
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?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 08:46 #3
det med bool var en fejl.
Du kan gøre det at du i gridviewet bruger onrowcreated
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 08:51 #4
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);
}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester