0

我有一个 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”的字段的值。我使用了超链接,因为文本框不允许数据绑定器使用代码块。

我做了什么!?

4

1 回答 1

0

根据 MSDN,“DataTextField 属性指定的字段的值作为查询字符串传递到格式字符串中指定的网页。” 所以你需要在你的 asp:hyperlink 声明中添加 DataTextField="aSeq" 。

没有测试,只是研究了一下。

于 2012-05-15T19:56:38.967 回答