2012-09-04 83 views
1

我試圖通過我的網站生成報告。通過Querystring將用戶輸入值傳遞給代碼

Default.aspx有一個下拉列表和2個文本框。報表(在不同的頁面上生成)必須使用sql查詢中用於從SQL Server收集數據的這3個控件的所有值。

概念
用戶可以保留所有3個字段的默認值,或更改其中任何一個。在確定用戶想要查看報告的值後,他們可以單擊一個HyperLink control以在新選項卡中打開報告頁面。

DropDownList的值通過設置在SelectedIndexChanged上的Session變量傳遞給Report.aspx。 Report.aspx讀取此內容,並應讀取2個文本框的文本值。

問題
我無法弄清楚如何通過發送文本框的值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> 

我不知道這會的工作,雖然,作爲評估和演示通常需要家長控制,以進行數據綁定 - 據我所知反正。

任何建議,將不勝感激

回答

0

當我問這個問題時,我記得Dropdownlist和textboxes用於綁定Default.aspx上的GridView,我在這裏使用了這個優點。

我知道這種或那種方式,GridView絕對是綁定之前,我點擊生成報告,所以我設置會話變量存儲報告所需的信息。

Dim db As New Database 

Dim sql As String = "select * from users where userid = @id and dateregistered between @fromdate and @todate" 

Dim args As New List(Of SqlParameter) 
args.Add(New SqlParameter("@id", ddlUsers.SelectedItem.Value)) 
args.Add(New SqlParameter("@fromdate", txtFromDate.Text)) 
args.Add(New SqlParameter("@todate", txtToDate.Text)) 

gvItems.DataSource = db.GetDataReader(sql, args.ToArray()) 
dvItems.DataBind() 

Session("userid") = ddlUsers.SelectedItem.Value 
Session("fromdate") = txtFromDate.Text 
Session("todate") = txtToDate.Text 
0

使用jQuery或Javascript你可以只調用客戶端函數從表單元素獲取值,構造URL並打開一個新的窗口?

0

除了使用HyperLink外,您還可以使用鏈接按鈕進行一些跨頁面發佈。

<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"); 

如您在報告頁面需要使用這些。