17 messaggi dal 15 marzo 2007
Salve,
Ho questo tipo di problema ...
ho una gridview con dei dati tramite un SQLdatasource.
Nella GW ho un ButtonField con Commandname e vorrei colorare la riga quando la seleziono.
Qualcuno ha un idea di come potrei fare?
grazie...
710 messaggi dal 13 novembre 2008
Contributi
che fai con quel commandName?

se richiamasse un comando Select non avresti problemi, basterebbe dare uno stile alla grid tramite la proprietà SelectedRowStyle

<asp:ButtonField CommandName="Select" Text="Seleziona"/>

e stop

altrimenti mi sa che non ti rimane che agire da codebehind


protected void GridView1_OnRowCommand(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "customCommand")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = GridView1.Rows[index];
selectedRow.BackColor = System.Drawing.Color.Blue;
}

}

se non ricordo male però non funziona se esistono già stili applicati alla grid, inoltre imho è brutto applicare stili in questo modo

consiglio: se puoi chiama il tuo CommandName="Select" e ti levi da tutto
17 messaggi dal 15 marzo 2007
Ciao e grazie innanzitutto!
Infatti facendo un giro su msdn ho risolto come mi hai consigliato con il SelectedRowStyle.
Ho applicato OnSelectedIndexChanged alla grid e poi da codebehind ho formattato la riga selezionata.
Ho fatto così perchè mi occorreva recuperare anche alcuni valori...


Protected Sub GRDanagraficautenti_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)

Dim row As GridViewRow = GRDanagraficautenti.SelectedRow
Message.Text = "HAI SELEZIONATO " & row.Cells(1).Text
GRDanagraficautenti.SelectedRowStyle.BackColor = Drawing.Color.ForestGreen
GRDanagraficautenti.SelectedRowStyle.ForeColor = Drawing.Color.AntiqueWhite

End Sub
710 messaggi dal 13 novembre 2008
Contributi
GRDanagraficautenti.SelectedRowStyle.BackColor = Drawing.Color.ForestGreen
GRDanagraficautenti.SelectedRowStyle.ForeColor = Drawing.Color.AntiqueWhite


ti basta

<asp:GridView ID="GridView1" runat="server" SelectedRowStyle-BackColor="...." SelectedRowStyle-ForeColor"..."/>

e ti levi quelle due righe brutte

opppure se hai uno skin e un css


skin
<asp:GridView runat="server" CssClass="GridViewStyle">
...
<SelectedRowStyle CssClass="SelectedRowStyle" />
...
</asp:GridView>

css
.SelectedRowStyle td
{
background-color: #CCCCCC;
}
17 messaggi dal 15 marzo 2007
Si ma se faccio così al caricamento mi da già una riga selezionata!!
Inoltre come posso personalizzare tale situazione?
Mettere il testo all'header centrare l'item ecc...
Modificato da lukaone il 18 marzo 2011 12.50 -
710 messaggi dal 13 novembre 2008
Contributi
ti darà una riga selezionata perchè avrai da qualche parte un GridView1.SelectedIndex = x;

perchè prob. prelevi dati al load

se non la vuoi selezionata, prelevi i dati eppoi metti

GridView1.SelectedIndex = -1;


per l'header per esempio
.HeaderStyle
{
// e qui metti i tuoi stili tra cui allineamenti, ecc.
margin-left:xxxx;
text-align:xxxxx;
}

non volevo complicarti la vita, solo che è sempre buona cosa separare stili e codice. ciao.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.