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 2.0 / 3.5 / 4.0
3 domande
mercoledì 10 dicembre 2008 - 09.18
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 10 dic 2008 - 09:18
ciao...ho 3 richieste da fare:
1_io ho impostato i ruoli x il mio sito...come faccio a rendere visibile una colonna templatefield soltanto al ruolo "amministratore"?
2_sempre riguardo ai ruoli...io nella mia pagina default.aspx ho un gridview popolato tramite sqldatasource in modo che gni utente possa vedere solo i record appartenenti a se stesso (impostando quindi una condizione where che riceve un parametro in ingresso)...come faccio x permettere all'amministratore di visualizzare tutti i record?
3_come faccio a recuperare tutti i valori di cui ho bisogno da una query sql nella stessa pagina? mi spego...una volta connesso al database,se ho questa istruzione:
stringa=select valore1,valore2,valore3 from tabella1 where valore1=@valore1
come faccio nella stessa pagina a recuperare i 3 valori?
x marco rossi...l'ultimo mio thread l'ho segnalato come risolto ma in realtà non è così...puoi darci un occhiata ciao
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mer 10 dic 2008 - 09:37
Le domande sono vaghe e quindi le risposte approssimative.
1. condizioni il visible se il ruolo è amministratore
2. prepari un sqlsourceAdministrator e nel pageload della pagina gli dici quale deve usare a secondo del ruolo
3. è supponibile che la stringa query che hai inserito sia parte del codice che alla fine riempie un dataset o un datatable, quindi devi accertarti che il risultato crei una sola riga e poi estrai i valori datatable.row(0).item("Valore1") o dataset.table(0).row(0).item(valore("Valore1").
ciao
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 10 dic 2008 - 09:51
1_come faccio da codice? non conosco le istruzioni...
2_come faccio da codice? non conosco le istruzioni...
3_quella stringa di query è parte di codice...ma non so come utilizzarla x il mio scopo...devo x forza creare un datatable quindi?
grazie
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mer 10 dic 2008 - 10:22
>1_come faccio da codice? non conosco le istruzioni...
cosa stai usando per visualizzare i dati? Lo chiedo perchè le istruzioni possono essere diverse da un oggetto all'altro, di norma vai sull'oggetto che vuoi rendere visibile/invisibile cerchi la proprietà visible e inserisci ='<%# iif(Ruolo = 'admin', true, false %>' oppure puoi farlo da codice intercettando il databind o il prerender del tua griglia dati.
>2_come faccio da codice? non conosco le istruzioni...
nell'evento page_load della pagina crei sqlsouce che ti serve con un if sul ruolo lo aggancia al tuo oggetto nella proprietà .datasource e lanci .databinding.
>3_quella stringa di query è parte di codice...ma non so come
>utilizzarla x il mio scopo...devo x forza creare un datatable
>quindi?
per forza non c'è niente, ma dove metti i dati dopo un interrogazione? il datatable è il più semplice, per poi essere utilizzato o consumato come si usa dire adesso.
>grazie
prego
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 10 dic 2008 - 12:14
1_il controllo che uso è il grid view...io sto provando da codice a renderlo visibile...ma non trovo l'istruzione adatta...
2_quindi io devo creare un secondo sqldatasource? poi in base al tipo di ruolo viene caricato o il primo o il secondo? ma l'sqldatasource io l'ho configurato da codice markup..quindi dovrebbe eseguirlo prima giusto? come faccio a gestire la scelta del primo o del secondo sqldatasource da codice behind ?
3_provo col datatable
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mer 10 dic 2008 - 12:54
alla domanda 1 rispondo questa sera perchè ora vado di corsa.
alla 2 sqlsource puoi lasciarlo a markup e crearne un secondo a markup, devi solo togliere al gridview il datasource, da markup.
Poi come ti dicevo dal codice, nell'evento page_load con l'if gridview.datasource = qua metti l'id del sqlsource che vuoi usare e fai gridview.binding
ciao
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 10 dic 2008 - 17:48
1_aspetto...grazie
2_funziona
3_in costruzione...
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
gio 11 dic 2008 - 00:07
La risposta alla domanda 1:
prendi il tuo gridview, reinserisci temporaneamente il datasource così ti viene più rapidamente, apri lo smart tag, vai in modifica colonne, deflagghi le colonne automaiche, e aggiungi una ad una le colonne che ti servono.
Poi vai in html e cerchi
<asp:BoundField DataField="Tua Colonna" HeaderText="solo per admin"
SortExpression="Tua Colonna" />
ovviamente il datafield deve corrispondere alla colonna della tabella interogata
e qui lo metti così
<asp:BoundField DataField="Tua Colonna" HeaderText="solo per admin"
SortExpression="Tua Colonna" Visible'<%# iif(Ruolo = 'admin', true, false %>'/>
oppure se ti viene meglio
<asp:BoundField DataField="Tua Colonna" HeaderText="solo per admin"
SortExpression="Tua Colonna" Visible'<%# ControlloRuolo%>'/>
dove controllo ruolo e la funzione lato codice che gestisce che sarà così
function ControlloRuolo () as boolean
if Ruolo = "admin" then
ControlloRuolo = true
else
ControlloRuolo = false
end sub
Ovviamente Ruolo = "Admin" lo dovrai scrivere adeguato al codice
ciao
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 11 dic 2008 - 15:16
non capisco questa istruzione
Visible='<%# iif(Ruolo = 'admin', true, false %>
non trovo il mio parametro ruolo...mi dice che non è dichiarato...
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
gio 11 dic 2008 - 17:43
Ti ho scritto che questo doveva essere adeguato per la tua situazione, dipende come gestisci i Ruoli,
potrebbe essere scritta così HttpContext.Current.User.IsInRole("admin"), ammesso e non concesso che tu usi la gestione System.Security, ma la gestione dei ruoli si può fare in diversi modi, ma l'istruzione è identica a quella della domanda 2.
poi scrivere iif(condizioni, vero , falso) è uguale a scrivere
if condizione then
vero
else
falso
end if.
anche "admin" deve essere adeguato alla denominazione che tu hai deciso sia quella del ruolo amministratore, che potrebbe anche essere "Pippo", lo decidi tu qual'è il ruolo che amministra, siccome tu non posti codice non poso sapere come ti muovi.
ciao
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 11 dic 2008 - 18:17
x il momento ho risolto in questo modo: NomeGridview.Columns.Item(0).Visible = False
solo che mi secca per il fatto che se un giorno o l'altro la disposizione delle colonne cambia, diventa invisibile la colonna sbagliata...
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
gio 11 dic 2008 - 23:39
Non so come aiutarti, vuoi provare a postarmi il codice che hai scritto per selezionare il datasource quello che dici ok e il codice markup del gridview o veroficare che sia simile a questo copiato dall'help
<%@ page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml"
>
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:detailsview
id="DetailsView1"
runat="server"
allowpaging="True"
datasourceid="SqlDataSource1"
autogeneraterows="False"
width="312px"
height="152px">
<fields>
<asp:boundfield
visible="False"
sortexpression="EmployeeID"
datafield="EmployeeID">
</asp:boundfield>
<asp:boundfield
sortexpression="LastName"
datafield="LastName"
headertext="LastName">
</asp:boundfield>
<asp:boundfield
sortexpression="FirstName"
datafield="FirstName"
headertext="FirstName">
</asp:boundfield>
<asp:boundfield
sortexpression="Title"
datafield="Title"
headertext="Title">
</asp:boundfield>
<asp:buttonfield text="Button">
<controlstyle font-bold="True" forecolor="Red" />
</asp:buttonfield>
</fields>
</asp:detailsview>
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
selectcommand="SELECT * FROM Employees"
connectionstring="<%$ ConnectionStrings:MyNorthwind%>">
</asp:sqldatasource>
</form>
</body>
</html>
Furio
http://www.opsi.ws
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
lun 15 dic 2008 - 18:04
va beh...x il momento lascio stare...grazie dell'aiuto
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 !