动态userControl内部的超链接

时间:2012-05-15 18:50:14

标签: asp.net html user-controls hyperlink

我有一个userControl动态添加到我的表单,任何地方1到20次。 该控件包含超链接字段(可见)和引用字段(不可见)。问题是超链接没有将引用字段的值作为链接页面参数传递。

userControl编码如下所示:

    <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>

因此,超链接应该打开Header页面,传递“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”的字段的值。我使用了超链接,因为文本框不允许数据仓的代码块。

我做了什么!?

1 个答案:

答案 0 :(得分:0)

根据MSDN&#34; DataTextField属性指定的字段的值作为查询字符串传递给格式字符串中指定的网页。&#34;所以你需要添加DataTextField =&#34; aSeq&#34;在你的asp:超链接声明中。

未经测试,只是研究过。