22 messaggi dal 17 ottobre 2008
Salve a tutti,
ho bisogno di unn aiuto sulla gestione di una Gridview in c# aspnet 3.5.

Questo il problema:
Creo un form con dentro una textbox, una gridview, e un pulsante.

Ora al click del pulsante vorrei catturare il dato della textbox (e fin qui nessun problema) e tutti valori della gridview.

la gridview è alimentata da una tabella access condizionata ed è stata aggiunta una colonna con un campo checkbox.

I valori da catturare sono quelli dove la checkbox sia vera.
il codice:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>
<asp:TextBox ID="ValoreTesto" runat="server"></asp:TextBox>
</p>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Utenza" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="IdElencoSocietario"HeaderText="IdElencoSocietario"
InsertVisible="False" SortExpression="IdElencoSocietario" />
<asp:BoundField DataField="Cognome" HeaderText="Cognome"
SortExpression="Cognome" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:BoundField DataField="DataNascita" HeaderText="DataNascita"
SortExpression="DataNascita" />
<asp:BoundField DataField="Utenza" HeaderText="Utenza"
ReadOnly="True" SortExpression="Utenza" />

<asp:TemplateField HeaderText="seleziona">
<ItemTemplate >
<asp:CheckBox ID="pippo" Checked="false" runat="server" />
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>

<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/mdb-database/MenuDB.mdb"

DeleteCommand="DELETE FROM [ElencoSocietario] WHERE [Utenza] = ?
InsertCommand="INSERT INTO [ElencoSocietario] SelectCommand="SELECT * FROM [ElencoSocietario]

<SelectParameters >

</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_Utenza" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="IdElencoSocietario" Type="Int32" />
<asp:Parameter Name="Cognome" Type="String" />
<asp:Parameter Name="Nome" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="IdElencoSocietario" Type="Int32" />
<asp:Parameter Name="Cognome" Type="String" />
<asp:Parameter Name="Nome" Type="String" />
</InsertParameters>
</asp:AccessDataSource>

<p>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

</p>

</div>

<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="CustomValidator"></asp:CustomValidator>

</form>
</body>
</html>

IL CS:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using System.Drawing;
using System.Web.SessionState;
using System.IO;


public partial class Default2 : System.Web.UI.Page
{
private string valore;

protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
string uno = ValoreTesto.Text.Replace("'", "'");

CustomValidator1.Text = "ho spinto" + " uno: " + uno.Trim() + " valore: " ;
CustomValidator1.IsValid = false;
}

}

Dove Valore dovrebbe essere il valore dei campi visualizzati nella gridview il problema e catturare tutti i campi compreso il campo checkbox.


Grazie
Modificato da Nicky il 05 gennaio 2009 13.01 -
devi ciclare la collezione Rows del GridView e per ogni riga utilizzando il FindControl recuperare il riferimento alla CheckBox, controlli se sia selezionata o meno e recuperi i calori che ti interessano accedendo direttamente alla collezione Controls della riga

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
22 messaggi dal 17 ottobre 2008
Ciao nostromo,
se ho ben capito devo all'interno dell'evento click del pulsante devo:

Gridview1.Rows..... come gli dico che si trova nella prima riga?

FindControl["MIACOLONNA"] è giusto?
puoi inviarmi una riga di esempio dove :

string valore = Gridview1.Rows.......

mi restituisce il valore in una determinata colonna?

Grazie
all'incerca il codice dovrebbe essere simile a questo:


foreach(GridViewRow _row in Gridview1.Rows)
{
if(_row.RowType  ==  DataControlRowType.DataRow)
{
CheckBox _checkBox = _row.FindControl("pippo") as CheckBox

if(_checkBox != null)
{
//fai quello che devi fare
}
}
}


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
22 messaggi dal 17 ottobre 2008
nostromo ha scritto:
all'incerca il codice dovrebbe essere simile a questo:


foreach(GridViewRow _row in Gridview1.Rows) 
{
if(_row.RowType  ==  DataControlRowType.DataRow)
{
CheckBox _checkBox = _row.FindControl("pippo") as CheckBox

if(_checkBox != null)
{
//fai quello che devi fare
}
}
}


ciao marco


GridViewRow_row non la vede e nemmeno _row

cosa vuoi dire con CheckBox_checkBox?

Grazie
che non ti veda GridViewRow_row è normale non esiste, GridViewRow è il tipo _row è il riferimento.

solito discorso per CheckBox_checkBox non sono attaccati ma c'è uno spazio

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
22 messaggi dal 17 ottobre 2008
ops, speriamo che il nuovo anno mi svegli di più.....
Talmente preso che non ho visto altro.

Grazie per il tuo aiuto.

Ciao Nic
di nulla

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.