2010-06-17 29 views
1

我正在使用下面的示例代碼,並遇到無法將Request.RawUrl值傳遞給擴展Control對象(下面的類Test)的對象的問題。無法將變量傳遞給用戶控件

當我使用該行:

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test> 

我發現Target屬性永遠不會被調用。

如果我用這個行:

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %> test"></Test1:Test> 

字符串值"<%# Request.RawUrl %> test"傳遞給目標財產。

如果我用這條線在很多帖子在網上解釋說:

<Test1:Test runat="server" ID="testControl" Target="<%= Request.RawUrl %>"></Test1:Test> 

字符串值"<%= Request.RawUrl %>"傳遞給目標財產。

我需要得到傳遞給我的測試控制對象的目標屬性的Request.RawUrl的值。有沒有人有任何想法,我錯了?


控制:

namespace Testing 
{ 
    public class Test : Control 
    { 
     public Test() 
     { 

     } 

     private string target; 

     public string Target 
     { 
      get { return target; } 
      set { target = value; } 
     } 
    } 
} 

用戶控制:

<%@ Control Language="C#" Debug="true" %> 
<%@ Register TagPrefix="Test1" Assembly="Test" Namespace="Testing" %> 

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test> 

回答

2

你需要調用testControl.DataBind()的代碼。 <%#在調用DataBind()時被設置。 <%=相當於Response.Write()。