0
我有一個自定義的ASP.NET用戶控件在代碼隱藏中完全實現。該控制裝置具有一個字符串屬性和它的聲明標記看起來是這樣的:爲什麼ASP.NET用戶控件的databound屬性只能在沒有引號的情況下工作?
<uc:MyControl ImageUrl="/Content/images/" runat="server" />
最有可能的實際申報將使用數據綁定語法是這樣的:
<uc:MyControl ImageUrl="<%# PageInfo.ImageUrl %>" runat="server" />
現在,這裏是屬於我的問題奇數部分。如果我使用上述語法,那麼數據綁定不起作用,並且運行時ImageUrl的值是引號之間的任何字符串字面值。但是,如果我刪除了雙引號,它按預期工作:既雙和單引號發生
<uc:MyControl ImageUrl=<%# PageInfo.ImageUrl %> runat="server" />
同樣的行爲。我對此感到困惑,雖然代碼工作,但它並不是最理想的,因爲將值放在引號中是規範,使數據綁定工作的方法顯然是非正統的。
任何人有任何想法,爲什麼這隻能工作沒有引號?
PageInfo.ImageUrl是您的自定義控件的數據綁定? – TheGeekYouNeed
PageInfo.ImageUrl是一個任意屬性,我綁定到示例中的控件的ImageUrl屬性。我可以使用其他任何東西(例如Request.QueryString),並且行爲是相同的。 –
你試過這個嗎? ImageUrl =「<%= PageInfo.ImageUrl%>」runat =「server」/> - 或者在代碼後面設置屬性如何?給你的UC:MyControl一個ID,這樣你可以? – TheGeekYouNeed