Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Poblema con DataGrid
giovedì 14 settembre 2006 - 11.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 14 set 2006 - 11:50
Ciao a tutti
ho inserito un DataGrid per visualizzare un elenco di tutte le foto presenti in una gallery.
Ogni riga, oltre a contenere tutte informazioni sulla foto, contiene un'immagine(a cui viene associata da codice l'id della foto da cancellare) che permette di cancellare la foto.
Il problema è questo: ogni pagina visualizza 20 foto. Se cancello una foto sulla prima pagina, la foto viene cancellata. Se cancello una foto sulla seconda pagina l'id della foto risulta essere sbagliato. Prende l'id della foto che si trova sulla stessa riga nella prima pagina.
Perchè accade questo?
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
dgOpere.CurrentPageIndex = 0;
}
LoadOpereList();
}
private void dgOpere_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
DataRowView row = (DataRowView)e.Item.DataItem;
ImageButton imgSentGenerated = (ImageButton)e.Item.FindControl("imgSent");
imgSentGenerated.Attributes.Add("onclick","return deleteThis()");
imgSentGenerated.CommandName = "DeleteRow";
imgSentGenerated.CommandArgument = row["opera_id"].ToString();
}
}
private void dgOpere_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
QuerySystem qs = new QuerySystem();
if (e.CommandName == "DeleteRow")
{
MySqlDataReader dtread = qs.getOperaById(e.CommandArgument.ToString());
if (dtread.Read())
{
string Result = qs.Delete("opere_tbl","opera_id",e.CommandArgument.ToString());
qs.Disconnect();
if(Result != "-1")
{
lblResult.Text=cs.ERR_DESC_TITLE_GENERIC_ERROR;
lblError.Text=Result;
}
else
{
LoadOpereList();
}
}
}
private void LoadOpereList()
{
QuerySystem qs = new QuerySystem();
dgOpere.DataSource = qs.getOpereListDs();
dgOpere.DataBind();
qs.Disconnect();
}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.dgOpere.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgOpere_ItemCommand);
this.dgOpere.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgOpere_PageIndexChanged);
this.dgOpere.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dgOpere_SortCommand);
this.dgOpere.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgOpere_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
private void dgOpere_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgOpere.CurrentPageIndex = e.NewPageIndex;
LoadOpereList();
}
GRAZIE MILLE
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 14 set 2006 - 17:42
Ciao Coach
io creo una dll, come posso eseguire il debug?
Grazie mille
Torna su
Stanze Forum
Elenco Threads
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 !