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.
Grazie a tutti

Rispondi quotando