2012-05-15 109 views
0

裏面我有一個用戶控件被動態添加到我的形式,在任何地方從1到20倍。 控制包含超鏈接字段(可見)和參考場(不可見)。問題是,超鏈接不流通的參考場爲鏈接頁面參數的值。超鏈接的動態用戶控件

用戶控件代碼如下所示:

<asp:Hyperlink ID="childLink" Enabled="true" DataNavigateUrlFields="aSeq" 
DataNavigateUrlFormatString="~/Header.aspx?aSeq={0}" NavigateUrl="~/Header.aspx" 
runat="server><%# DataBinder.Eval(Container, "DataItem.cName") %> </asp:HyperLink> 

這樣的超級鏈接應該打開頁眉頁,傳遞「ASEQ」字段的,看起來像這樣的值:

<asp:HyperLink ID="aSeq" Enabled="true" DataNavigateUrlFields="aSeq" DataNavigateUrlFormatString="~/Header.aspx?aSeq={0}" NavigateUrl="~/Header.aspx" 
       runat="server"><%# DataBinder.Eval(Container,"DataItem.genePK") %></asp:HyperLink> 

它沒有去爲Header.aspx頁面的頁面加載,但Request.QueryString["aSeq"]始終是NULL。在Page_Load中我有簡短的代碼塊:

string aRequest = Request.QueryString["aSeq"]; 
     if (aRequest==null) 
     { 
      PopulateHeader("GKEAAHDI"); 
     } 
     else 
     { 
      PopulateHeader(aRequest); 
     } 

我只能猜測它沒有得到標記「ASEQ」字段的值。我用了一個超鏈接,因爲一個文本框不會允許DataBinder的代碼塊。

我做了什麼!?

回答

0

根據MSDN「由DataTextField屬性指定的字段的值作爲查詢字符串傳遞給格式字符串中指定的網頁」。所以,你需要添加DataTextField =「ASEQ」在你的ASP:超鏈接聲明。

未經測試,只是研究。