7 messaggi dal 16 febbraio 2007
Salve a tutti.
Ho l'esigenza di modificare i campi tramite una gridview.
Fino quì tutto bene.
Il problema sorge quando dopo ever premuto il pulsante EDIT, le textbox che appaiono nelle celle sono troppo lunghe.
C'é un sistema per accorciarle?
Io ho provato ma non funziona.

protected void GridViewCamicie_RowEditing(object sender, GridViewEditEventArgs e)
{
int row = e.NewEditIndex;
GridViewRow r = GridViewCamicie.Rows[row];
r.Cells[1].Width = 25;
}
47 messaggi dal 09 luglio 2007
Secondo me dovresti accedere al controllo dentro l'editItemTemplate...
Quindi qualcosa di simile, supponendo che sia una TextBox:
((TextBox)this.GridViewCamicie.Rows[e.NewEditIndex].FindControl("IDControllo")).Width = 25px;


Fammi sapere se trovi altre soluzioni, perché lo vorrei implementare anch'io...

Ciao,
N@poleone
"Le battaglie si vincono con gli uomini che si hanno, non con quelli che si vorrebbero" (Napoleone Bonaparte)
189 messaggi dal 28 maggio 2007
Ciao,

se la textbox che è lunga, devi settare la proprietà WIDTH della textbox e non della CELL.

Esempi di come ottenere l'oggetto TextBox:

1) (TextBox)e.Item.Cells[1].Controls[0]
2) (TextBox)e.Item.Cells[1].FindControl("NOME TEXTBOX")
3) Oppure, con l'HTML VIEW, setta la larghezza del TEXTBOX control dentro l'EDIT TEMPLATE.

Saluti

Andrea R.
7 messaggi dal 16 febbraio 2007
Ciao Napoleone
Ho risolto cambiando evento e tecnica completamente.
Eccoti il codice.
Sempre disponibile per commenti.

protected void GridViewCamicie3840_RowDataBound(object sender, GridViewRowEventArgs e)
{
//QUESTA IF NON CONSIDERARLA SERVE PER VELOCIZZARE E NON APPLICARE
//L'IMMAGINE IN FASE DI EDITING
if (GridViewCamicie3840.EditIndex == -1)
{
bool c = false;
c = cam.ApplicaImg(e, "3840");
}
//-----------------------------------------------------
//SONO IN EDIT
if (GridViewCamicie3840.EditIndex >= 0)
{
foreach (TableCell cell in e.Row.Cells)
{
foreach (Control ctl in cell.Controls)
{
if (ctl.GetType() == typeof(TextBox))
{
((TextBox)ctl).Width = 25;
}
}
}
}
}
7 messaggi dal 16 febbraio 2007
Grazie Andrea ma ho risolto alla mia maniera come puoi vedere dal codice.
Bay bay
protected void GridViewCamicie3840_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (GridViewCamicie3840.EditIndex >= 0)
{
foreach (TableCell cell in e.Row.Cells)
{
foreach (Control ctl in cell.Controls)
{
if (ctl.GetType() == typeof(TextBox))
{
((TextBox)ctl).Width = 25;
}
}
}
}
}
7 messaggi dal 16 febbraio 2007
Scusa napoleone ma ho visto che eri interessato alla soluzione del problema.
Volevo mostrarti ed evitarti una inutile fatica su come accedere alla singola textbox da modificare.

if (ctl.GetType() == typeof(TextBox))
{
if (((TextBox)ctl).ToolTip == "Linea" || ((TextBox)ctl).ToolTip == "Modello")
{
((TextBox)ctl).Width = 60;
}
else
{
((TextBox)ctl).Width = 25;
}
}

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.