2013-08-23 4 views
-3

다음 예제를 통해 머리를 쓰려고 애 쓰고 있습니다. (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.filterexpression.aspx)DataGrid에서 여러 텍스트 상자 검색

목표 : DataGrid 필터링을 편집하는 데 사용되는 두 개의 드롭 다운/텍스트 상자가 있습니다.

= 이름 뒤에 'FirstName ='{0} ' "뿐만 아니라 FirstName ='{1} '"을 추가하려고 시도했지만 작동하지 않는 것 같습니다. 물론 FirstName에 대한 컨트롤 매개 변수도 추가했습니다.

아래 코드는 처음에는 내 버전이고 원래 버전입니다.

내 코드

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html xmlns="http://www.w3.org/1999/xhtml" > 
      <head runat="server"> 
      <title>ASP.NET Example</title> 
     </head> 
     <body> 
       <form id="form1" runat="server"> 

        <p>Show all employees with the following title: 
        <asp:DropDownList 
         id="DropDownList1" 
         runat="server" 
         AutoPostBack="True"> 
         <asp:ListItem Selected="True">A</asp:ListItem> 
         <asp:ListItem>B</asp:ListItem> 
         <asp:ListItem>C</asp:ListItem> 
        </asp:DropDownList></p> 

<asp:DropDownList 
         id="DropDownList2" 
         runat="server" 
         AutoPostBack="True"> 
         <asp:ListItem Selected="True">X</asp:ListItem> 
         <asp:ListItem>Y</asp:ListItem> 
         <asp:ListItem>Z</asp:ListItem> 
        </asp:DropDownList></p> 

        <asp:SqlDataSource 
         id="SqlDataSource1" 
         runat="server" 
         ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" 
         SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees" 
         FilterExpression="Title='{0}' or "FirstName='{1}'"> 
         <FilterParameters> 
          <asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/> 
<asp:ControlParameter Name="FirstName" ControlId="DropDownList1" PropertyName="SelectedValue"/> 
         </FilterParameters> 
        </asp:SqlDataSource> 

        <p><asp:GridView 
         id="GridView1" 
         runat="server" 
         DataSourceID="SqlDataSource1" 
         AutoGenerateColumns="False"> 
         <columns> 
          <asp:BoundField Visible="False" DataField="EmployeeID" /> 
          <asp:BoundField HeaderText="First Name" DataField="FirstName" /> 
          <asp:BoundField HeaderText="Last Name" DataField="LastName" /> 
         </columns> 
        </asp:GridView></p> 

       </form> 
      </body> 
     </html> 
+0

내가 주위에 내 머리를 얻을 수 sturggling하고 있었고, 난 그것을 느꼈다은 원래 코드를 게시했다으로 (그리고 잠재적으로 오도 된) 코드를 사용했을 때보 다 더 낫습니다. 어쨌든 도움을 주시면 감사하겠습니다. – indofraiser

답변

0

나는 원래 검색 쿼리를 오토넷 쉼표를했다. 나는 실제로 '또는'을 넣어야했습니다.

는 .. 원래 (올바른로 편집) 포스트 아래 샘플 코드에 대한 전체 코드를 참조

<asp:SqlDataSource 
         id="SqlDataSource1" 
         runat="server" 
         ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" 
         SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees" 
         FilterExpression="Title='{0}' or "FirstName='{1}'">