1

私は自分のサイトからレポートを生成しようとしています。

Default.aspxには、ドロップダウンリストと2つのテキストボックスがあります。レポート(別のページで生成される)は、SQLServerからデータを収集するために使用されるSQLクエリでこれら3つのコントロールのすべての値を使用する必要があります。

概念
ユーザーは、3つのフィールドすべてをデフォルト値のままにするか、いずれかを変更することができます。ユーザーがレポートを表示する値を決定したら、をクリックHyperLink controlして新しいタブのレポートページを開くことができます。

DropDownListの値は、に設定されたSession変数を介してReport.aspxに渡されSelectedIndexChangedます。Report.aspxはこれを読み取り、2つのテキストボックスのテキスト値も読み取る必要があります。

問題
TextBoxの値をReport.aspxに送信する方法がわかりません。私は次のことを考えました:

<asp:HyperLink runat="server" id="lnkReport"
  NavigateUrl="Report.aspx?fromdate=<%# Eval('txtFromDate.Text') %>&todate=<%# Eval('txtToDate.Text') %>"
  target="_blank" Text="Generate Report"></asp:HyperLink>

Evalは通常、親コントロールをデータにバインドする必要があるため、これが機能するかどうかはわかりません-とにかく私が知っている限りです。

任意の提案は大歓迎です

4

3 に答える 3

0

jQueryまたはJavascriptの使用クライアント側の関数を呼び出して、フォーム要素から値を取得し、URLを作成して、新しいウィンドウを開くことができますか?

于 2012-09-04T12:37:22.463 に答える
0

ハイパーリンクを使用する代わりに、リンクボタンを使用してクロスページ投稿を行うことができます。

<asp:LinkButton runat="server" id="lnkReport"
  NavigateUrl="~/Report.aspx"
  target="_blank" Text="Generate Report"></asp:LinkButton>

次に、Report.aspx.csで:

次のように、 Page.PreviousPageから値を取得します。

DropDownList userid = (DropDownList)Page.PreviousPage.FindControl("ddlUsers");
TextBox fromdate = (TextBox)Page.PreviousPage.FindControl("fromdate");
TextBox todate = (TextBox)Page.PreviousPage.FindControl("todate");

レポートページで必要に応じてこれらを使用してください。

于 2012-09-04T14:21:09.590 に答える