예를 들어 gridview와 두 개의 텍스트 상자가 있습니다.Gridview에 대해 여러 컨트롤을 어떻게 갖고 있습니까?
하나의 텍스트 상자는 검색 할 텍스트입니다. 두 번째 텍스트 상자는 검색 할 주문 번호입니다.
내 gridview가 하나 또는 다른 하나를 기준으로 채워지 길 원합니다. 사용자가 번호 검색을 사용하고 이름 대신 이름으로 검색하는 경우 내 양식을 말하는 방법을 모르겠습니다.
도움 주셔서 감사합니다.
예를 들어 gridview와 두 개의 텍스트 상자가 있습니다.Gridview에 대해 여러 컨트롤을 어떻게 갖고 있습니까?
하나의 텍스트 상자는 검색 할 텍스트입니다. 두 번째 텍스트 상자는 검색 할 주문 번호입니다.
내 gridview가 하나 또는 다른 하나를 기준으로 채워지 길 원합니다. 사용자가 번호 검색을 사용하고 이름 대신 이름으로 검색하는 경우 내 양식을 말하는 방법을 모르겠습니다.
도움 주셔서 감사합니다.
당신은 사용하여 텍스트 상자를 확인할 수 있습니다 (TextBox1.Text.Trim.Length> 0) 또는 (TextBox1.Text = "")
그리고 텍스트 상자에 입력 한 값에 따라 ifelse를 사용하여 필터링을위한 논리를 사용할 수 있습니다 –
texbox가 비어 있는지 확인하는 데 더 많은 허용되는 양식이 있습니다. 'String.IsNullOrEmpty (TextBox1.Text)' – pseudocoder
실제 필터 매개 변수를 기반으로 데이터 소스를 필터링하는 방법을 묻는 것처럼 들립니다. 이를 설명하려면 데이터 소스가 무엇인지 파악해야합니다. 어느 쪽이든, gridview 그냥 필터링 된 결과를 표시 할 것입니다, 그렇지?
데이터 원본에 SQL을 사용하는 경우 기술은 메모리에서 컬렉션을 필터링하는 것과 완전히 다릅니다. 더 많은 정보가 도움이 될 것입니다.
내가 몇 분이 걸렸다 때문에 아직 해결되지 OK 희망 내가 생각하는 예를 생각해 보면 네가 원하는대로 할거야.
DB 접속이 저장 프로 시저를 사용하지만 당신은 DAL와 ObjectDataSource를 사용하거나
마크 업 단지 등의 SqlDataSource에서 SQL 문을 인라인 할 수 있습니다
Product ID:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="You must enter a number"
ValidationGroup="vg1" Type="Integer" Operator="DataTypeCheck"></asp:CompareValidator>
<br />
Description:
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<asp:Button ID="cmdSearch" runat="server" Text="Search" ValidationGroup="vg1" /><br />
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="spGetProducts"
CancelSelectOnNullParameter="False" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" PropertyName="Text" DbType="String" DefaultValue="" />
<asp:ControlParameter ControlID="TextBox2" PropertyName="Text" DbType="Int32" DefaultValue="" />
</SelectParameters>
</asp:SqlDataSource>
그리고 T-SQL에 대한 귀하의 쿼리 : 사용자가 필드 중 하나에 아무 것도 입력하지 않으면
CREATE PROCEDURE spGetProducts
@ProductId int = NULL
,@ProductDescription nvarchar(100) = NULL
AS
BEGIN
SELECT [ProductId]
,[ProductDescription]
FROM [Products]
WHERE (
(
(@ProductId IS NULL)
OR
([ProductId] LIKE % + @ProductId + %)
)
AND
(
(@ProductDescription IS NULL)
OR
([ProductDescription] LIKE % + @ProductDescription + %;)
)
);
END
의의 SqlDataSource는 여전히 인해 SqlDataSource.CancelSelectOnNullParameter = False
에 결합하지 않지만 빈 매개 변수는 것입니다 ControlParameter.DefaultValue
이 설정되어 쿼리와 함께 전송되지 않습니다. 그런 다음 저장 프로 시저가 NULL 값을 매개 변수에 삽입하고 기본적으로 WHERE 절에서 필터링의 해당 부분을 건너 뜁니다.
희망이 도움이됩니다.
데이터에 액세스하는 데 사용하는 SQL 쿼리를 공유 할 수 있습니까? –
그냥 datatable 시각적 쿼리입니다. – johnny
제출 버튼이 있거나 초점이 맞지 않을 때 필터를 걸고 싶습니다 –