2015-04-22 29 views
0

嗨我試圖在我的日期文本框中傳遞空值文本框3和文本框4,但我不能這樣做。請讓我知道我做錯了什麼。基本上我需要的是當頁面加載和文本框是空的我需要Gridview加載整個表。目前它只在我輸入日期範圍時才加載,但如果我將日期文本框留空,我會得到一個空白頁面。對於也附加到這兩個文本框的下拉日曆控件,我有一個Ajax日曆擴展。不知道這是否是問題。請幫助..傳遞NULL在文本框不工作

下面是代碼

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:IngestConnectionString %>" 
    SelectCommand="SELECT ID, Story_number, Date, Memory_card, Story_Name FROM Library WHERE (Story_Name LIKE '%' + @Story_Name + '%') AND (Story_number LIKE '%' + @Story_number + '%') AND (@startdate IS NULL OR @startdate = '' OR Date >= @startdate) AND (@enddate IS NULL OR @enddate = '' OR Date <= @enddate)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="TextBox1" 
      Name="Story_Name" 
      PropertyName="Text" 
      DefaultValue="%" /> 
     <asp:ControlParameter ControlID="TextBox2" 
      DefaultValue="%" 
      Name="Story_number" 
      PropertyName="Text" /> 
     <%--<asp:ControlParameter ControlID="DropDownList1" 
       DefaultValue="%" 
       Name="Memory_card" 
       PropertyName="SelectedValue" />--%> 
     <asp:ControlParameter ControlID="TextBox3" 
      Name="startdate" 
      ConvertEmptyStringToNull="true" 
      PropertyName="Text" /> 
     <asp:ControlParameter ControlID="TextBox4" 
      Name="enddate" 
      ConvertEmptyStringToNull="true" 
      PropertyName="Text" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

它的工作原理,當我把一些荒謬的日期範圍的默認值,但根據我不能讓它空傳遞到數據庫中,以便我看到的全表頁面加載時

<asp:ControlParameter ControlID="TextBox3" 
    Name="startdate" 
    ConvertEmptyStringToNull="true" 
    DefaultValue="1/1/1977" 
    PropertyName="Text" /> 
<asp:ControlParameter ControlID="TextBox4" 
    Name="enddate" 
    ConvertEmptyStringToNull="true" 
    DefaultValue="1/1/2100" 
    PropertyName="Text" /> 

更新:

我在哪裏添加此代碼?我加入它的控制參數,這樣

<asp:ControlParameter ControlID="TextBox4" 
    Name="enddate" 
    SqlDataSource2.CancelSelectOnNullParameter="False" 
    PropertyName="Text" /> 

它給了我下面的錯誤,當我做

文字內容(」 < ASP:ControlParameter控件ID =‘TextBox4’NAME =「結束日期「SqlDataSource2.CancelSelectOnNullParameter =」 假」的PropertyName = 「文本」/ > System.Web.UI.WebControls.ParameterCollection '

+0

看看'SqlDataSource.CancelSelectOnNullParameter' – fnostro

+0

嗨感謝您的幫助。我嘗試了參數,但它看起來不像參數 – Gerard

+0

只是爲了澄清,你是什麼意思你_「嘗試參數」_「CancelSelectOnNullParameter」已經可用.NET 2以來。它是'SqlDataSource'的一個屬性,控制,即**'SqlDataSource2.CancelSelectOnNullParameter =「False」** – fnostro

回答

2

CancelSelectOnNullParameter「)是不是一個內不允許' 是S的屬性QLdatasource控制,不包含在控制參數:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    CancelSelectOnNullParameter="False" 
    ConnectionString="<%$ ConnectionStrings:IngestConnectionString %>" 
    SelectCommand="SELECT ID, Story_number, Date, Memory_card, Story_Name FROM Library WHERE (Story_Name LIKE '%' + @Story_Name + '%') AND (Story_number LIKE '%' + @Story_number + '%') AND (@startdate IS NULL OR @startdate = '' OR Date >= @startdate) AND (@enddate IS NULL OR @enddate = '' OR Date <= @enddate)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="TextBox1" ... 
+0

非常感謝你fnostro。 CancelSelectOnNullParameter =「False」解決了我的問題。 – Gerard

+0

你做了我的一天! – SalientBrain

0

或該屬性:默認值= 「%」

<asp:ControlParameter ControlID="TxtSearch" Name="Title" PropertyName="Text" Type="String" DefaultValue="%" />