2013-06-25 170 views
0

所以我正在學習ASP.NET,實際上今天是我的第二天。根據動態下拉列表中的選擇生成表格?

所以現在我想創建一個頁面,我首先有一個動態生成的下拉列表,它只選擇我的數據庫和表中的名字。這個我已經工作

接下來,我有一個GridView表,其中顯示從數據庫中的所有數據,目前,我有硬編碼的名稱,因此頁面不會崩潰(有10萬行數據)

最後時我發佈我的代碼,你會看到一個複選框,就是這樣,當我點擊它時,gridview會顯示出來。我只是在嘗試,因爲那是我今天學到的一節課的一部分。

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <h1>Test of First Database pull</h1> 
     <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Text="Show Panel" OnCheckedChanged="checkbox1_CheckedChanged" /> 
     <br /> 
     <br /> 
     <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="FirstName" DataValueField="FirstName" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ASP.NETConnectionString1 %>" ProviderName="<%$ ConnectionStrings:ASP.NETConnectionString1.ProviderName %>" SelectCommand="SELECT DISTINCT [FirstName] FROM [SampleData] ORDER BY 'FirstName' "></asp:SqlDataSource> 

     <br /> 
     <br /> 
     <asp:Panel ID="Panel1" runat="server" Visible="False" > 
      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display."> 
       <Columns> 
        <asp:BoundField DataField="SSN" HeaderText="SSN" SortExpression="SSN" /> 
        <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> 
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> 
        <asp:BoundField DataField="HomeStreet" HeaderText="HomeStreet" SortExpression="HomeStreet" /> 
        <asp:BoundField DataField="HomeCity" HeaderText="HomeCity" SortExpression="HomeCity" /> 
        <asp:BoundField DataField="HomeState" HeaderText="HomeState" SortExpression="HomeState" /> 
        <asp:BoundField DataField="HomeZip" HeaderText="HomeZip" SortExpression="HomeZip" /> 
        <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" /> 
        <asp:BoundField DataField="CompanyStreet" HeaderText="CompanyStreet" SortExpression="CompanyStreet" /> 
        <asp:BoundField DataField="CompanyCity" HeaderText="CompanyCity" SortExpression="CompanyCity" /> 
        <asp:BoundField DataField="CompanyState" HeaderText="CompanyState" SortExpression="CompanyState" /> 
        <asp:BoundField DataField="CompanyZip" HeaderText="CompanyZip" SortExpression="CompanyZip" /> 
        <asp:BoundField DataField="HomePhone" HeaderText="HomePhone" SortExpression="HomePhone" /> 
        <asp:BoundField DataField="CompanyPhone" HeaderText="CompanyPhone" SortExpression="CompanyPhone" /> 
        <asp:BoundField DataField="CellPhone" HeaderText="CellPhone" SortExpression="CellPhone" /> 
        <asp:BoundField DataField="DateOfBirth" HeaderText="DateOfBirth" SortExpression="DateOfBirth" /> 
        <asp:BoundField DataField="DateOfHire" HeaderText="DateOfHire" SortExpression="DateOfHire" /> 
       </Columns> 
      </asp:GridView> 
      <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ASP.NETConnectionString1 %>" 
       ProviderName="<%$ ConnectionStrings:ASP.NETConnectionString1.ProviderName %>" 
       SelectCommand="SELECT [SSN], [LastName], [FirstName], [HomeStreet], [HomeCity], [HomeState], [HomeZip], [CompanyName], 
       [CompanyStreet], [CompanyCity], [CompanyState], [CompanyZip], [HomePhone], [CompanyPhone], [CellPhone], 
       [DateOfBirth], [DateOfHire] FROM [SampleData] WHERE [FirstName] = 'Bob' "></asp:SqlDataSource> 


     </asp:Panel> 
    </div> 
    </form> 
</body> 
</html> 

這裏是我的C#部分在那裏我叫會話

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Demos_GridView : System.Web.UI.Page 
{ 


    protected void Page_Load(object sender, EventArgs e) 
    { 
      string name = DropDownList1.SelectedValue; 
      Session["FName"] = name; 
    } 
    protected void checkbox1_CheckedChanged(object sender, EventArgs e) 
    { 
     Panel1.Visible = CheckBox1.Checked; 
    } 
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 
} 

正如你看到我所謂的會話「我相信」我試圖用這個

<%:Session["user"]%> 

該SQL查詢中但它是說我不能在asp sql調用中有< %%>。因此,如果任何人都可以幫助我,這將是驚人的。

回答

0

也許你應該添加用戶的名字爲SqlParameter

SqlDataSource1.SelectParameters.Add(new SqlParameter("@Name", name)); 
// Of course don't forget to edit your query: WHERE [FirstName] = @Name 

上面的東西應該工作(注意我沒有測試過它)。

編輯:

你可以通過配置的SqlDataSource從ControlSession設置@Name參數的值更縮短這個過程。

+0

我應該在aspx頁面中添加第一個代碼的哪個文件?或cs頁面? – Skrilliam

+0

您應該將其添加到代碼隱藏(.cs)中。無論如何,我建議你遵循我最後的建議,這是更好的。 – Novak

+0

謝謝你,我試過把它不工作,但我發現如果我編輯我的網格視圖的數據源,我可以只使用嚮導,並告訴什麼地方子句做,然後我不得不設置我的下拉到一個汽車回發所以每次改變我會得到說的結果。 – Skrilliam

相關問題