9 messaggi dal 19 febbraio 2010
Salve a tutti,
ho un problema con una GridView.

Il mio scopo è il seguente:
gridView Paginata(enablepagining true) + DropDown che mi filtra i risultati.

tutto funziona correttamente, le cose non vanno bene invece quando passo per il filtro della drop down in quanto i dati vengono ricaricati e se vado in editazione di un elemento mi prende un id (univoco) non corretto.

protected void Page_Load(object sender, EventArgs e)
{

// Credo che il problema sia qui !ma se lo metto in postback non mi fa la paginazione
grvGestionNews.DataSource = Carica_tutte();
grvGestionNews.DataBind();
if (!IsPostBack)
{

DataTable dt = Tipologia();
drpType.Items.Add(new ListItem("Tutti", "*"));
foreach (DataRow dr in dt.Rows)
{
//Popolo le categorie
drpType.Items.Add(new ListItem(dr["Nome_categoria"].ToString(), dr["ID"].ToString()));

}
}


}


protected void drpType_SelectedIndexChanged(object sender, EventArgs e)
{


if (drpType.SelectedItem != null)
{
ListItem lt = (ListItem)drpType.SelectedItem;

string _value = lt.Value;

if (_value.Equals("*"))
{
//Ovviamente popolo tutto
refresh_grid();
}
else
{
//Popolo solo l'elemento selezionato

grvGestionNews.DataSource = SelectAll_Id(Convert.ToInt32(_value));
grvGestionNews.DataBind();

}
}


protected void grvGestionNews_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
int _rowIdx = Convert.ToInt32(e.CommandArgument);

//se filtro con drop down passa dal lod e non va correttamente
int _id = Convert.ToInt32(grvGestionNews.DataKeys[_rowIdx].Values["ID"]);

}


protected void grvGestionNews_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
grvGestionNews.PageIndex = e.NewPageIndex;

grvGestionNews.DataBind();
}
catch (Exception exc)
{

}
}
}

Questo è il codice di massima, nella grid view ho un pulsante per prelevare l'id dell'elemento selezionato, ma non prende correttamente l'id quando è applicato il filtro della drop down. Dov'è l'errore?


Grazie a tutti
kikko82 wrote:
tutto funziona correttamente, le cose non vanno bene invece quando passo per il filtro della drop down in quanto i dati vengono ricaricati e se vado in editazione di un elemento mi prende un id (univoco) non corretto.

devi fare il datadind solo al primo caricamento. se lo fai anche dopo, l'effetto è quello di perdere la riga selezionata.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.