RowCommand

martedì 07 giugno 2011 - 15.08
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008

bdog Profilo | Newbie

Salve,
utilizzando un Gridview ho la necessità che tutta la riga, formata da diverse colonne, sia cliccabile come se tutta la riga fosse un commandfield: Select.
Per quanto riguarda la visualizzazione della manina sono a posto, il problema è con l'evento RowCommand che non funziona, dovrei usare un altro metodo?

Riporto codice
aspnet:

<asp:GridView ID="grwElencoRisultatiRicerca" runat="server"
AutoGenerateColumns="False" BackColor="White" BorderColor="#3366CC"
BorderStyle="None" Width="100%"
OnSelectedIndexChanged="grwElencoRisultatiRicerca_SelectedIndexChanged"
OnRowCommand="grwElencoRisultatiRicerca_RowCommand">
<Columns>
<asp:CommandField ShowSelectButton="True" Visible="False" />
<asp:BoundField />
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:BoundField DataField="CFPiva" HeaderText="CFPiva" />
<asp:BoundField DataField="Cap" HeaderText="Cap" />
<asp:BoundField DataField="Città" HeaderText="Città" />
<asp:BoundField DataField="Indirizzo" HeaderText="Indirizzo" />
<asp:BoundField DataField="datains" HeaderText="datains" />
</Columns>
</asp:GridView>

Codice c#:

private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
grwElencoRisultatiRicerca.SelectedIndexChanged += new EventHandler(grwElencoRisultatiRicerca_SelectedIndexChanged);

String queryString =
"SELECT ID, Email, CFPiva, Cap, Città, Indirizzo, datains " +
"FROM tblProveMie";

DataSet ds = GetData(queryString);
if (ds.Tables.Count > 0)
{
grwElencoRisultatiRicerca.DataSource = ds;
grwElencoRisultatiRicerca.RowDataBound += new GridViewRowEventHandler(grwElencoRisultatiRicerca_RowDataBound);
grwElencoRisultatiRicerca.DataBind();
}
}

}
DataSet GetData(String queryString)
{
String connectionString = ConfigurationManager.AppSettings["provemie"];

DataSet ds = new DataSet();

try
{
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

adapter.Fill(ds);

}
catch
{
}
return ds;
}

private void grwElencoRisultatiRicerca_RowDataBound(Object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
// Display the company name in italics.
//e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='yellow';this.style.cursor='hand'");

e.Row.Attributes.Add("onclick", "__doPostBack('grwElencoRisultatiRicerca$_ctl" + (e.Row.RowIndex + 3) + "$_ctl0','')");
}

}

public void grwElencoRisultatiRicerca_RowCommand(object source, EventArgs e)
{

Response.Redirect("Prova2.aspx");

}
Grazie e spero di esser stato chiaro

Gluck74 Profilo | Guru

Ho scritto un post sul mi blog che spiega come fare.
In sostanza lo stesso comando che viene inserito automaticamente dal gridview per la selezione, lo inserisco direttamente sulla riga della griglia.
Leggi il post ci sono dettagli e codice.

http://glucolo.wordpress.com/2011/06/10/gridview-selezione-con-un-semplice-click-su-tutta-la-riga/

Ciao


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5