0

フォームに 1 回から 20 回の範囲で userControl が動的に追加されています。コントロールには、ハイパーリンク フィールド (表示) と参照フィールド (非表示) が含まれます。問題は、ハイパーリンクが参照フィールドの値をリンクされたページ パラメータとして渡していないことです。

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>

したがって、ハイパーリンクはヘッダー ページを開き、次のような「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 プロパティで指定されたフィールドの値は、フォーマット文字列で指定された Web ページにクエリ文字列として渡されます。」そのため、asp:hyperlink 宣言に DataTextField="aSeq" を追加する必要があります。

テストしていません。調査しただけです。

于 2012-05-15T19:56:38.967 に答える