PDA

View Full Version : نمایش نتایج جستجو در کنترل داه ای



sarapepors
جمعه 21 بهمن 1390, 17:39 عصر
سلام.من یک صفحه جستجو طراحی کردم که در آن کابر جستجوی خود را در گزینه های مطالب ، اخبار و پرسش ها و همه انجام دهد .و نتایج را هم می خواهم در یک gridview نمایش دهم مشکلم مربوط به زمانی است که کاربر یکی از کزینه های مطالب اخبار یا پرسش ها را انتخاب کند اگر گزینه همه را انتخاب کند چون از union استفاده کرده ام و کوئری شامل فیلدهای همه جداول خبر و مطلب و پرسش است مشکلی وجود ندارد اما زمانی که جستجو محدود به خبر و.. میشود یک استثنا در گرید ویو رخ میدهد آن هم مربوط به مقادیر بایند شده است که فیلد مورد نظر آن ها در کوئری مزبوطه قرار ندارد


ALTER PROCEDURE Search(@Keyword nvarchar(100),@Item nvarchar(14))
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
if (@Item=N'')

SELECT tblQuestion.Question_id, tblQuestion.Question_Caption,N' ' AS PartName FROM tblQuestion WHERE
(Question_Caption LIKE N'%' + @keyword + N'% ' or Question LIKE N'%' + @keyword + N'%')
UNION
SELECT tblNews.News_id,tblNews.News_Caption,N'' AS PartName FROM tblNews WHERE
(News_Caption LIKE N'%' + @keyword + N'% ' or News_Desc LIKE N'%' + @keyword + N'%')
UNION
SELECT tblMatlab.Matlab_id,tblMatlab.Matlab_Caption,N' ' AS PartName FROM tblMatlab WHERE
(Matlab_Caption LIKE N'%' + @keyword +N'% ' or Matlab LIKE N'%' + @keyword + N'%')

else if (@Item=N' ')
SELECT tblMatlab.Matlab_id,tblMatlab.Matlab_Caption, N' ' AS PartName FROM tblMatlab WHERE
(Matlab_Caption LIKE N'%' + @keyword +N'% ' or Matlab LIKE N'%' + @keyword + N'%')
else if (@Item=N'')
SELECT tblNews.News_id,tblNews.News_Caption,N'' AS PartName FROM tblNews WHERE
(News_Caption LIKE N'%' + @keyword + N'% ' or News_Desc LIKE N'%' + @keyword + N'%' )

else if (@Item=N' ')
SELECT tblQuestion.Question_id, tblQuestion.Question_Caption,N' ' AS PartName FROM tblQuestion WHERE
(Question_Caption LIKE N'%' + @keyword + N'% ' or Question LIKE N'%' + @keyword + N'%')
RETURN

این کد مربوط به sp است.



[<asp:GridViewID="GridView_Search"runat="server"AllowPaging="True"
AutoGenerateColumns="False"GridLines="None">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text="Label"></asp:Label>
<p><%#Eval("PartName")%></p>
<ahref='<%#Eval("Matlab_id","SubjectView.aspx?Code={0}")%>'><%#Eval("Matlab_id")%></a>
<br/>
<ahref='<%#Eval("News_id","NewsView.aspx?Code={0}")%>'><%#Eval("News_Caption")%></a>
<br/>
<ahref='<%#Eval("Question_id","SubjectView.aspx?Code={0}")%>'><%#Eval("Question_Caption")%></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


این کد نیز مرتبط با گرید ویو .با توجه به کد گرید ویو و همچنین sp اگر کاربر بخواهد به عنوان مثال در پرسش خا به دنبال کلمه کلیدی مورد نظر خود بگردد مقادیر موجو در دیتا ست فقط ستون ها question _id,Question_Caption را شامل میشوند و مابقی فیلدهای گرید ویو به هیچ فیلدی بایند نیستند .
لطفا در این مورد راهنماییم کنید آیا باید از چند گرید ویو استفاده کنم؟

sarapepors
شنبه 22 بهمن 1390, 08:38 صبح
سلام. دوستان لطفا در این مورد راهنماییم کنید من فقط میخوام بدونم چطور میشه حاصل کوئری های متفاوت رو از چند جدول مختلف در یک گرید ویو نشان داد اصلا این امکان وجود داره یا خیر؟؟؟؟؟؟