3 messaggi dal 23 gennaio 2018
Buonasera,
non sono un esperto di c#, sto realizzando un'applicazione web per imparare il mondo della programmazione ad oggetti, derivo da anni di Mainframe.
Ho un problema che non riesco a superare, per questo motivo ho deciso di scrivere nel forum, nella speranza di capire da esperti se quello che voglio realizzare e' fattibile oppure no.
Vorrei creare da codice C# una <table> con <tr>, <td> e <input type="Text">, fino a qui nessun problema. il problema l'ho riscontro nel momento di rileggere i dati inserite negli <input>.

Inserisco una sola parte del codice per non complicare la cosa ma con la speranza di far capire il mio problema.

Aspx

<div id="idListaMovimenti" runat="server" style="height: 65%;">
</div>

C#

StringBuilder listaMovimenti = new StringBuilder();

listaMovimenti.Append("<table id=\"a2\" runat=\"server\" style=\"border-spacing: 1px; border-collapse: separate; width: 100%; background-color: rgba(176, 176, 176, 1);\">");

listaMovimenti.Append("</table>");

idListaMovimenti.InnerHtml = listaMovimenti.ToString();

Tento di rileggere la tabella con il FindControl:

HtmlControl cc = (HtmlControl)FindControl("idListaMovimenti").FindControl("a2");

Il risultato è null, non lo trova.

Se utilizzo lo stesso comando "HtmlControl cc = (HtmlControl)FindControl("idListaMovimenti").FindControl("a2");" ma, il codice della <table> la scrivo direttamente nel modulo aspx, funziona perfettamente.

Modulo Aspx

<div id="idListaMovimenti" runat="server" style="height: 65%;">
<table id="a2" runat="server">
</table>
</div>


Da quello che penso di aver intuito e' che scrivendo la <table> tramite codice non percepisce la Runat="server" e quindi il FindControl non riesce successivamente a trovare il controllo, ho intuito bene?
Quale soluzione mi potete suggerire per risolvere il mio problema? c'e' la possibilita' di rileggere il anche se ho creato la parte di <table> tramite codice?

Ringrazio anticipatamente.

Buona Serata.
Ha intuito bene. C'è un motivo per cui aggiunge la table da codice? Sarebbe meglio farlo attraverso gli opportuni controlli aspx: ad esempio il PlaceHolder come contenitore al posto del div o anche semplicemente un Panel (che è un div lato server).

Detto questo, per continuare sulla sua strada le consiglio di usare il controllo Table invece della stringa.

Ormai programmano tutti... ma la professionalità appartiene a pochi
3 messaggi dal 23 gennaio 2018
Buonasera manuel0081,
come prima cosa grazie per la risposta e il suggerimento.
Il motivo del perchè inserisco i controlli da codice è perchè non so a priori quante righe di tabelle devo inserire, possono essere da 1 a N.
Mi spiego meglio, sto creando un software che ha necessità di inserire un numero, per esempio un importo, per ogni riga di prodotto presente nella tabella Sql, quindi una tabella che può avere un numero illimitato di record. Volevo quindi creare la lista dei prodotti, dove, associato ad ognuno di loro c'è un campo di input(importo) da valorizzare, una volta fatto questo, rileggere le righe e i suoi valori per aggiornare la tabella Sql. Volevo evitare di creare una pagina che mostrasse il singolo prodotto per modificare il dato.
Spero di esser riuscito a far capire la mia esigenza.

Ho pensato anche di utilizzare un listview, che ne pensa?

Chiedo scusa se non sono molto chiaro o non conosco molto bene il linguaggio ma sono alle prime armi, sto cercando di imparare, quindi, ho pensato di chiedere aiuto un questo sito perché ho notato molte persone in gamba.

Cordiali Saluti.
Le consiglio di usare un Repeater se deve mostrare tutti i dati (pochi) in una pagina oppure una GridView che offre già alcune funzionalità come la paginazione.

Ormai programmano tutti... ma la professionalità appartiene a pochi

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.