27 messaggi dal 07 gennaio 2008
Ciao a tutti. Ho un problema.

Ho una LinkButton all'interno di una grid View

...
<asp:LinkButton ID="ID_LinkButton" runat="server" ... 
ToolTip = "Clicca qui per aprire la finestra di dettaglio";
Text='<%# Bind("nomeColonna") %>' .../>
...


Ora... tralasciando tutto il discorso di come introdurre a run time un WebControl in un TemplateField, ( per chi fosse interessato vi reindirizzo a questa mia discussione:

http://forum.aspitalia.com/forum/post/322553/Instanziare-Template-TemplateField.aspx

buona lettura.), chiedo a chiunque di voi come poter scrivere a run time l'equivalente in ASP del data bound.

es:


...
 LinkButton myLinkButton = new LinkButton();
myLinkButton.ID = "ID_LinkButton";
myLinkButton.ToolTip = "Clicca qui per aprire la finestra di dettaglio";
...
 //NO GOOD! Stampa la scritta a livello client (HTML)...!
myLinkButton.Text = "<%# Eval(\"" + myField + "\")%>";
//NO GOD. Non stampano nulla!
DataBinder.Eval(DataBinder.GetDataItem(myLinkButton), myField);
...


Come vedete sto provando di tutto... Vi prego aiutatemi. PLEASE
Modificato da damon.guest il 05 maggio 2008 14.23 -

Il Dio di questa gente ha mostrato loro con milioni di azioni di non rispettare alcuno dei comandamenti della Bibbia. Egli li viola uno per uno, adulterio e tutto il resto.

(Mark Twain)
come dicevo nell'altro post, una volta registrato un EventHandler per l'evento DataBinding, accedi al NamingContainer del LinkButton, nel tuo caso dovrebbe evvere un GridViewRow, se non erro espone una proprietà chiamata DataItem, la casti all'oggetto della tua fonte dati e accedi alla proprietà o nome di colonna che vuoi associare alla proprietà Text del tuo LinkButton

ciao marco
Modificato da nostromo il 05 maggio 2008 16.01 -

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

http://nostromo.spaces.live.com/default.aspx
27 messaggi dal 07 gennaio 2008
Ciao Marco...

"...la casti all'oggetto della tua fonte dati e accedi alla proprietà o nome di colonna che vuoi associare alla proprietà Text del tuo LinkButton "

Purtroppo questa parte mi sfugge

io faccio

 public void InstantiateIn(Control container)
            {
                LinkButton myLinkButton = new LinkButton();
                myLinkButton.ToolTip = "Clicca qui per aprire la finestra di dettaglio";
                myLinkButton.ID = ID_LinkButton;
                myLinkButton.Click += new EventHandler(dlg);
                myLinkButton.Text = ID_LinkButton;
                container.Controls.Add(myLinkButton);


                myLinkButton.DataBinding += new EventHandler(myLinkButton_DataBinding);
            }

            void myLinkButton_DataBinding(object sender, EventArgs e)
            {
                LinkButton source = (LinkButton)sender;
                GridViewRow container =
                    (GridViewRow)(source.NamingContainer);

                //??????????????????????????
                //DataBinder.Eval(container.DataItem, myField);
               
            }


Ti ringrazio molto per la tua disponibilità.

Il Dio di questa gente ha mostrato loro con milioni di azioni di non rispettare alcuno dei comandamenti della Bibbia. Egli li viola uno per uno, adulterio e tutto il resto.

(Mark Twain)
27 messaggi dal 07 gennaio 2008
YAHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

public class MyContainer : ITemplate
        {
            private myDelegate dlg;
            private String ID_LinkButton = "";
            private String myField = "";

            public MyContainer(myDelegate dlgTemp, String myField, String ID_LinkButton)
            {
                this.dlg = dlgTemp;
                this.ID_LinkButton = ID_LinkButton;
                this.myField = myField;
            }

            public void InstantiateIn(Control container)
            {
                LinkButton myLinkButton = new LinkButton();
                myLinkButton.ToolTip = "Clicca qui per aprire la finestra di dettaglio";
                myLinkButton.ID = ID_LinkButton;
                myLinkButton.Click += new EventHandler(dlg);
                container.Controls.Add(myLinkButton);
                myLinkButton.DataBinding += new EventHandler(myLinkButton_DataBinding);
            }

            void myLinkButton_DataBinding(object sender, EventArgs e)
            {
                LinkButton source = (LinkButton)sender;
                GridViewRow container = (GridViewRow)(source.NamingContainer);
                // ECCO QUA LA SOLUZIONE
                source.Text = ((DataRowView)container.DataItem)[myField].ToString();
            }
        }


Grazie di tutto Marco

Il Dio di questa gente ha mostrato loro con milioni di azioni di non rispettare alcuno dei comandamenti della Bibbia. Egli li viola uno per uno, adulterio e tutto il resto.

(Mark Twain)
di nulla, alla fine l'ultimo passaggio lo hai fatto senza altri suggerimenti :D

ciao e buon lavoro

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.