Domanda su Gridview

domenica 11 giugno 2006 - 21.23

Giovanni_3478 Profilo | Senior Member

Ciao

Dopo aver creato la connessione al database e dopo aver creato il gridview

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

vorrei:
data la tabella "prova" e i campi "text" e "flag",
vorrei creare della sintassi per sviluppare questo semplice ragionamento:
if campo flag==true
visualizza A
else
visualizza B.

Il valore di "campo flag" sarà dato da un metodo dell'oggetto "gridview1"
(dal momento che questo è l'id del controllo gridview inserito nella aspx),
oppure dall'utilizzo delle classi dataKey e datacontrolfield ?

Qual'è la classe da usare per ottenere il valore del "campo flag"?

Giovanni_3478 Profilo | Senior Member

Grazie mille

Con il tuo aiuto ho risolto.

Ho aggiunto un template filed,
poi un itemtemplate e poi
<%# GetFlag(Eval("flag"))

nel codice poi ho aggiunto questo:
protected string GetFlag(bool flag)
{
if(flag)
{
return "A";
}
else
{
return "B";
}
}


Tutto funziona

Giovanni_3478 Profilo | Senior Member

Non apro un nuovo thread perchè chiedo qualcosa che è legata a quanto precedentemente scritto.

Considerando che che flag è un campo di una tabella del database,
vorrei creare del codice che derivi da questo ragionamento:

dim flag as boolean if (eval("flag") = false) then visualizza <asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>..... else response.write(" ")

se nella aspx scrivo
<% if (eval("flag") = false) then %> <asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>..... <% else response.write(" ") %>
mi dà errore

lo stesso se nella aspx scrivo
<script runat=server> if (eval("flag") = false) then </script> <asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>..... <script runat=server> else response.write(" ") </script>


Per ottenere il risultato esposto sopra, che sintassi dovrò usare?

Giovanni_3478 Profilo | Senior Member

la logica la inserisco nel codice

Ma il problema è:
come faccio nel codice a creare dei nuovi controlli?
dim flag as boolean if (eval("flag") = false) then visualizza <asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>..... else response.write(" ")
Il controllo <asp:placeholder> non mi aiuta
perchè io non so quante volte devo visualizzare
<asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>.....

A quale controllo associo l'evento itemdatabound?

Giovanni_3478 Profilo | Senior Member

>>Il controllo <asp:placeholder> non mi aiuta
>>perchè io non so quante volte devo visualizzare (questo):
>><asp:linkbutton>
>><asp:multiview>
>><asp:view>
>><asp:gridview>
>><columns> ....... <templatefield>.....
>Questo lo dovresti sapere te.
In pratica devo creare un linkbutton,un multiview, un view e una gridview
ogni volta che nel database c'è un record con il campo flag impostato a true;
per questo non so quante volte dovrò creare gli oggetto di cui sopra.
Potrei usare un ciclo for, ma nella aspx quanti placeholder dovrò creare
se non posso sapere quanti record ci sono nel database?



>>A quale controllo associo l'evento itemdatabound?
>Al gridview
come farò a riferirmi ad un campo del database?
la funzione eval non posso usarla.
Tanto è vero che dà errore
I metodi di associazione dati come Eval(), XPath() e Bind() possono essere utilizzati solo nel contesto di un controllo con associazione a dati.


gli oggetti linkbutton, multiview, view e gridview dovrò inserirli dove?
Nella aspx ho qusto codice
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString= "<%$ ConnectionStrings:jaykay.netConnectionString %>" SelectCommand="SELECT * FROM [Pagine_illimitate] WHERE ([flag] = @flag)"> <SelectParameters> <asp:Parameter DefaultValue="true" Name="flag" Type="Boolean" /> </SelectParameters> </asp:SqlDataSource>
dopo </asp:SqlDataSource> giusto?

Il risultato che vorrei ottenere segue qquesto ragionamento:
nella aspx.vb
dim flag as boolean if (campo("flag") = true) then visualizza <asp:linkbutton> <asp:multiview> <asp:view> <asp:gridview> <columns> ....... <templatefield>..... else response.write(" ")
nella aspx
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString= "<%$ ConnectionStrings:jaykay.netConnectionString %>" SelectCommand..... </asp:SqlDataSource> qui inserisco il codice creato nella aspx.vb che dice che ad ogni record con il campo flag=true devo visualizzare una serie di controlli ad esempio 4 controlli. Non so quindi volte dovrà inserire 4 controlli che dovranno avere quindi degli id diversi
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5