2015-10-09 71 views
0

我需要按日期進行gridview搜索,而項目名稱是可選的,用戶可以留空。但是我所做的代碼,用戶必須輸入項目名稱。我怎樣才能使項目名稱是可選的?提前致謝。按日期搜索和項目名稱

<div class="form-inline">Project Name: 
    <asp:TextBox ID="Pname" 
       runat="server" 
       CssClass="form-control" 
       Width="230px"></asp:TextBox> From: 
    <asp:TextBox ID="FromDate" 
       runat="server" 
       CssClass="form-control" 
       Width="230px"></asp:TextBox> 
    <asp:CalendarExtender ID="CalendarExtender1" 
          runat="server" 
          TargetControlID="FromDate" 
          cssclass="MyCalendar"></asp:CalendarExtender> To: 
    <asp:TextBox ID="ToDate" 
       runat="server" 
       CssClass="form-control" 
       Width="230px"></asp:TextBox> 
    <asp:CalendarExtender ID="CalendarExtender2" 
          runat="server" 
          TargetControlID="ToDate" 
          cssclass="MyCalendar"></asp:CalendarExtender> 
    <asp:Button ID="btnsearch" 
       runat="server" 
       Text="Search" 
       cssclass="btn btn-info" /> 
</div> 

的GridView:

<asp:GridView ID="GridView1" 
       runat="server" 
       AutoGenerateColumns="False" 
       DataKeyNames="ReportId" 
       DataSourceID="SqlDataSource1" 
       AllowPaging="True" 
       AllowSorting="True" 
       RowStyle-Wrap="true"> 
    <Columns> 
     <asp:BoundField DataField="ReportId" 
         HeaderText="ReportId" 
         InsertVisible="False" 
         ReadOnly="True" 
         SortExpression="ReportId" 
         visible="false" /> 
     <asp:BoundField DataField="ReportDesc" 
         HeaderText="Report" 
         ReadOnly="True" 
         SortExpression="ReportDesc" /> 
     <asp:BoundField DataField="ProjectName" 
         HeaderText="Project" 
         SortExpression="ProjectName" /> 
     <asp:BoundField DataField="ReportDate" 
         HeaderText="Date" 
         SortExpression="ReportDate" /> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" 
        runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT * From Report" 
        FilterExpression="[ReportDate] >= '{1}' and [ReportDate] <= '{2}' and [ProjectName]='{0}'"> 
    <FilterParameters> 
     <asp:ControlParameter ControlID="Pname" 
           Name="name" 
           PropertyName="text" 
           Type="String" /> 
     <asp:ControlParameter ControlID="FromDate" 
           Name="Date" 
           PropertyName="Text" 
           Type="String" /> 
     <asp:ControlParameter ControlID="ToDate" 
           Name="Date2" 
           PropertyName="Text" 
           Type="String" /> 
    </FilterParameters> 
</asp:SqlDataSource> 

回答

0
  1. 集CancelSelectOnNullParameter上的SqlDataSource
  2. 設置默認值= 「假」 爲NULL PNAME Con​​trolParameter