2012-12-14 58 views
1

我目前正在使用C#開發一個網頁。我有一個DropdownList數據與我的sql數據庫中的數據綁定。在dropdownlist綁定到我的數據庫之後,下拉列表中的項目是userA,userB和userC。如果我選擇下拉列表中的任何項目,特定用戶的數據將顯示在gridview中。添加綁定的所有下拉列表

所以,我現在要做的是我想要在下拉列表中添加一個ALL。當我點擊ALL時,每個用戶的數據將顯示在gridview中。我怎樣才能做到這一點?有什麼建議?謝謝。

P/S:我不想添加任何額外的按鈕,以顯示所有的用戶數據。我想在下拉列表中進行設置。

這是我的代碼:

WebApp.aspx:

<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="SqlDataSource1" DataTextField="Username" 
     DataValueField="Username"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" 
     SelectCommand="SELECT [Username] FROM [Accounts]"> 
</asp:SqlDataSource> 

這是我已經編輯了一個新的網頁。我不會在後面的代碼中調用數據綁定函數。

感謝您的幫助。

這就是我要找的答案:

<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="SqlDataSource1" DataTextField="Username" 
     DataValueField="Username" AppendDataBoundItems="True"> 
    <asp:ListItem Text="All" Value ="all" Selected="True"></asp:ListItem> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" 
     SelectCommand="SELECT [Username] FROM [Accounts]"> 
</asp:SqlDataSource> 

謝謝大家誰是試圖幫助我。你使用SQL數據

ddlUsers.Items.Add(new ListItem("All", "all")); 
ddlUsers.SelectedValue = "all"; 

一旦做到這一點,你可以根據這個條件你選擇的所有用戶查詢綁定DropdownList

使用此代碼:

+0

發佈一些代碼,你嘗試過到現在怎麼辦? – ankur

+0

你究竟綁定到下拉列表?它是一個數據表?對象列表?你如何做到這一點? – BuddhiP

+0

在下拉列表中選擇** ALL **將所有項目值以逗號分隔,並將其隱藏起來,然後將它們分開傳遞給您的方法 – Nag

回答

2

你可以做到這一點

if(ddlUsers.SelectedValue == "all") 
{ 
    // your SQL query to select all users goes here. 
} 

在HTML標記,你可以添加此類似:

<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="SqlDataSource1" DataTextField="Username" 
     DataValueField="Username"> 

<asp:ListItem Text="All" Value ="all" Selected="True"></asp:ListItem> 

</asp:DropDownList> 

如果您不希望在默認情況下選擇此項,您可以刪除Selected="True"

+0

感謝您的幫助,但這不是我想要的。因爲我把它放在page_load中,它不起作用。我認爲這是因爲該頁面將在數據綁定之前加載。所以在添加「ALL」後,只有數據綁定,所以「ALL」不會出現。或者你知道如何在數據綁定後添加「ALL」? – 0070

+0

您可以在調用DropDownlIst.DataBind()函數後添加它。我修改了代碼。此外,請確保您將此代碼置於條件'if(!Page.IsPostBack){//此代碼}' –

+0

中但條件是我的下拉列表數據綁定使用下拉列表右側的箭頭。我的代碼中沒有DropDownlIst.DataBind()函數。如何在DropDownlIst.DataBind()函數後調用上面的代碼? – 0070

0

你可以做很少的事情來實現這一點。 1)ddlUsers.Items.Add(new ListItem(「All」,「all」));在你綁定下拉列表的地方添加這一行。

2)使用SelectedIndexChanged事件下拉喜歡的...

protected void ddlUsers_SelectedIndexChanged(object sender, EventArgs e) 
{ 
if(ddlUsers.SelectedValue == "all") 
{ 
    //Call your SQL query from here and bind the result set with your grid. 
    //if you need the id's of all the items in the drop down then write a loop and form a  //string with , separated valued and pass it along. 
} 

} 
+0

我的下拉列表數據綁定是通過使用下拉列表右邊的箭頭。我不修改後臺代碼中的任何代碼以進行數據綁定。所以我應該在哪裏添加ddlUsers.Items.Add(新的ListItem(「所有」,「所有」)); ??? – 0070

+0

您可以通過單擊小箭頭按鈕來綁定您的下拉式菜單,而不使用您正在使用的數據源。我的意思是通過編寫查詢。如果你不能,你可以使用java腳本來只添加這個項目。 – ankur

+0

我找到了答案。我發佈的是我問的問題。謝謝你的幫助。 – 0070