Avatar billede wildthing Nybegynder
14. februar 2008 - 09:02 Der er 6 kommentarer og
1 løsning

Tilføj spaces til en parameter

Kære eksperter

jeg har et Gridview. fra den overfører jeg en parameter (item) til et detailsview.
<asp:ControlParameter ControlID="GridView1" Name="item" PropertyName="SelectedValue" />

mit prblem er at @item i SQLkaldet for detailsviewet skal have 9 spaces foran @item... således

item = '        1000000001'
@item indeholder alstå kun '1000000001'

hvordan indsætter jeg i min MSSQLsætning 9 spaces foran @item, eller hvordan definerer jeg eventuelt min ControlID tag således at den kan sætte @item = '        1000000001'


Wildthing
Avatar billede powerpunk Nybegynder
14. februar 2008 - 09:51 #1
hvis item altid har en total længde på 19 karakterer kan du i sql'en ændre den som

SELECT @item = RIGHT('0000000000000000000' + RTRIM(@item), 19);
Avatar billede wildthing Nybegynder
15. februar 2008 - 13:25 #2
det er selvfølgelig nok fordi at selectedvalue kun refererer til min ID i Gridview1. jeg ville egnetlig overføre værdien af feltet "item" og ikke "ID" i mit tilfælde. Da ID er en GUID, kan den selvfølgelig ikke bruges som @item. det må dog kunne lade sig gøre at stjæle parametren item (og revi) fra gridview1 og bruge dem som controlparameter til mit SQL kald. eller hva.... ellers må jeg jo over i kodebehind og måske lave en sessionsvariabel.
Hvad siger du "powerpunk"?

                <SelectParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="item" PropertyName="SelectedValue" DefaultValue="1000000001" />
                    <asp:ControlParameter ControlID="GridView1" Name="revi" PropertyName="SelectedValue" DefaultValue="A" />
                </SelectParameters>
Avatar billede wildthing Nybegynder
15. februar 2008 - 13:27 #3
hov mit forrige indlæg smuttede.

Powerpunk. jeg har prøvet dit bud med blanke istedet for 0'er, men det hjalp ikke noget... læs nu mit indlæg ovenfor. undskyld rodet
Avatar billede powerpunk Nybegynder
19. februar 2008 - 08:45 #4
Du burde kunne lave det i udtrækket i din datasource.

Jeg er lidt i tvivl om, hvorvidt jeg helt har forstået problemstillingen.

Du har et GridView og et DetailsView
Du vil gerne have DetailsView'et til at vise et-eller-andet baseret på et valg foretaget i DataGrid'et.

Har de hver deres DataSource?
Har du sat 'Enable Selection' på dit GridView?
Har du forsøgt at ændre manuelt på SQL statement'et i aspx source så det hedder noget i retning af
  SelectCommand="SELECT * FROM [Table] WHERE (LTRIM([item]) = ?) and [revi] = ?">
  <SelectParameters>
    <asp:ControlParameter ControlID="GridView1" Name="item" PropertyName="SelectedValue" DefaultValue="1000000001" />
    <asp:ControlParameter ControlID="GridView1" Name="revi" PropertyName="SelectedValue" DefaultValue="A" />
Avatar billede wildthing Nybegynder
19. februar 2008 - 09:11 #5
Powerpunk. Du har forstået det godt nok.
Fejlen er at jeg i mit hoved havde tænkt at jeg kunne bruge andre felter i mit

gridview til at være nøgle til detailsviewet.

Som jeg gør det her er det naturligt nok kun min GUID som overføres og det er ikke hverken item eller revi, men en uniq id.

Jeg har nu lavet det med en sessionsvariabel og sessionsparameter.
Avatar billede powerpunk Nybegynder
19. februar 2008 - 09:27 #6
ok. smider du selv et svar så den kan lukkes, så?
Avatar billede wildthing Nybegynder
19. februar 2008 - 09:40 #7
jeps. tak for din tid powerpunk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester