Request.QueryString in inline koda

Alo!
V enem izmed page-ov uporabljam podatkovne vire (večinoma SqlDataSource) za prikazovanje detailov. Zadeva se veže na DetailsView. Znotraj detailsview-a imam svojo kontrolo, ki vzame kot property en id, ki ga dobim iz Request.QueryString parametra. Property ima atribut Bindable. Ker nisem imel potrebe po code behind-u, sem poskusil nastaviti direktno iz RequestQueryString-a.

Primer:
<mcl:Mask id="mHeader" runat="server" HeaderID='<%=Request.QueryString["HeaderID"];%>' />

ce nastavim v code behind-u, mi zadeva dela, če pa preko inline kode, mi pa vrne HeaderID=null.

Kaj delam narobe?









Avtor: bojanv, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

bojanv
bojanv - četrtek, 07. september 2006

To sem nardil. Samo mi javlja error oziroma, ko sem prišel z debuggerjem not, mi je napisalo, da je vrednost null. Kar pa v mojem primeru ne more bit, ker je parameter ID, ki se ga ( zaenkrat ) vidi v url vrstici. Torej nekaj ni kul. Mam se par zamisli pa sporočim, če bo delalo....

MihaM
MihaM - četrtek, 07. september 2006

Niti ne rabiš narediti property, mogoče lahko kar takole: '&lt;%# Request.QueryString["HeaderID"] %&gt;'

AndrejT
AndrejT - torek, 05. september 2006

Ena varianta je binding, druga pa prirejanje vrednosti v kodi, v kolikor je to mogoče.

bojanv
bojanv - torek, 05. september 2006

Torej načeloma lahko to nardim samo tako, da v code behind nardim property, mu dam atribut bindable (OneWay) pa pole vezem na kontrolo? ker ta kontrola je v drugi kontroli oziroma v datalistu....a obstaja še kakšna druga finta?

AndrejT
AndrejT - torek, 05. september 2006

Tole mislim da nikakor ne bi šlo, ker zahteva dvojno procesiranje strani. Enačaj&nbsp;v &lt;%= xxx %&gt; se prevede v Response.Write, torej &lt;%Response.Write(xxx) %&gt;, to pa pomeni, da bi se moral najprej sprocesirat ta stavek, da bi sploh dobil vrednost, šele v drugi iteraciji pa bi se s to vrednostjo sprocesiral kontrolnik Mask. Predstavljaj si to tako, da če bi bilo to mogoče, bi bilo mogoče tudi to: &lt;mcl:Mask id="mHeader" runat="server" HeaderID='&lt;%=Request.QueryString["HeaderID"]; CallSomeFunction();&nbsp;string variable = "text"; Response.Write(variable);&nbsp;Response.Redirect(...);%&gt;' /&gt;