2011年10月7日 星期五

ASP.net SelectParameters的值為空字串 導致 Gridview無法顯示資料內容的解決方式

手動寫分頁 有點麻煩。故大多時候的資料呈現都可利用Gridview加上AccessDataSource等資料控件項來搭配。
但若遇到某個過濾參數來源值為空字串,就會讓 Gridview無法顯示資料內容

假設:有一個組織,區分為 上層單位Unit1與下層單位Unit2
Unit1必有值,Unit2不一定有值。
例如:Unit1為中區分公司,Unit2為行政課,但Unit2也可能為空字串。

下方將Unit1值以Session來過濾條件,Unit2值則以下拉式選單過濾

* 記得在可能有空字串的SelectParameters條件,加設 DefaultValue=" "即可解決問題。


<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:lea_DBcs %>"
ProviderName="<%$ ConnectionStrings:lea_DBcs.ProviderName %>" SelectCommand="SELECT* FROM [DocApply] WHERE ([Unit2] = @Unit2 and [Unit1] = @Unit1 " >
<selectparameters>

<asp:ControlParameter ControlID="DropDownList1" DefaultValue=" "
Name="Unit2" PropertyName="SelectedValue" Type="String" />

<asp:SessionParameter SessionField="Unit1" Name="Unit1" Type="String" />
</SelectParameters>

追蹤者