2012-05-15 62 views
0

我有一個DropDownList(「類別」)一個簡單的頁面ASP.NET/C# GridView和一個GridView控件(「項目」)刪除參數。每個通過的SqlDataSource來自各個表中提取數據。該「項目」的數據來源有SELECT語句中的ControlParameter,並且下拉自動回發。一切工作正常 - 我可以在下拉列表中選擇一個項目,GridView控件自動改變像我期望的那樣。頁上連接到下拉選擇

有沒有一種方法(ASP.NET中),我可以在下拉列表中選擇「顯示所有」的項目,將來自數據源中刪除參數,所以它會在所有項目,無論範疇拉?或者是不可能的,我需要切換一些本到代碼隱藏。

回答

0

取決於Category

A)如果Category是一個varchar類型,那麼你應該能夠修改SelectSqlDataSource的是因爲:

... WHERE Category LIKE @Category 

,並在您DropDownList的項目:

<asp:ListItem Text="(Any)" Value="%"></asp:ListItem> 

B)如果Category是一個數值類型,那麼英語新HOULD可以修改您的Select,檢查是否有「幻數」(即你通過業務規則儲備一批意味着一個通配符 - 並確保有地方記錄):

... WHERE Category = @Category OR @Category = -99 

,包括在您DropDownList一個項目:

<asp:ListItem Text="(Any)" Value="-99"></asp:ListItem> 
0

你可以做這樣的事情

如果分類是一個數值(datavaluefield),那麼你可以遵循below..add新項目

<asp:ListItem Text="(Any)" Value="%"></asp:ListItem> 
在SELECT語句的filterexpression

你需要寫像

Convert(Category,System.String) like '{0}%' 

這將改變你的數字列字符串類型和過濾器表達式將通過正確的參數

如果它是一個字符串類型那麼就沒有必要使用Convert函數。

<asp:ListItem Text="(Any)" Value="%"></asp:ListItem> 

Category like '{0}%' 

讓我知道這是否對您有幫助。