PDA

View Full Version : سوال: نمایش برچسب - DataList in GridView



KavoshGar_ir
پنج شنبه 20 اسفند 1388, 12:42 عصر
دوستان من میخوام برای یکسری خبر همزمان تک ها مربوط به آن خبر هم نشان بدم ...

اینکار اگر به صورت یک خبر مجزا بود خیلی راحت بوسیله یک گرید ویو و یک دیتالیست امکان پذیر بود چون id خبر را هم از جدول اخبار و هم از جدول تک ها با Request داشتیم ...

اما من میخوام در یک صفحه کلیه اخبار داشته باشم و زیر هر خبر برچسب های آن خبر را نشان بدم ...

کاری که الان انجام دادم از GridView استفاده کردم و با تمپلیت نمایش دادم اما برای استفاده از دیتالیست هم باید از تمپلیت کردنش استفاده کنم که مشکل بوجود میاد ...

اولا برای این قضیه یعنی نمایش اخبار در صفحه و نمایش تگ ها ( به صورت افقی ) در زیر هر خبر راه حل بهتری سراغ دارید؟! از چه ابجکت هایی استفاده کنم بهتره؟!

ثانیا زمانی که در تمپلیت گرید ویو از تمپلیت دیتا لیست استفاده میکنم نام دیتا لیست را در کد بی هایند ندارم که بایندش کنم چطور میشه مشکل را حل کرد؟!

General-Xenon
پنج شنبه 20 اسفند 1388, 12:51 عصر
دوست من سلام....!
این کار خیلی سادست....

اگر درست فهمیده باشم، شما میخواید همزمان اطلاعاتی رو از دو جدول با یک ID انجام بدید.
راه اول : دستور Select :
INNER JOIN.

راه دوم : تنظیمات دستی Grid View :
در تمپلیت از یک لیبل و قرار دادن اطلاعات با ID خاص خودش، فقط کافیه SELECT کنی.

راه سوم : نوشتن یک کلاس
می تونی یک کلاس بنویسی که با دادن اطلاعات مشترک بین دو جدول تگ های خبر رو فرا خونی کنه.

KavoshGar_ir
پنج شنبه 20 اسفند 1388, 18:07 عصر
دوست من سلام....!
این کار خیلی سادست....

اگر درست فهمیده باشم، شما میخواید همزمان اطلاعاتی رو از دو جدول با یک ID انجام بدید.
راه اول : دستور Select :
INNER JOIN.

راه دوم : تنظیمات دستی Grid View :
در تمپلیت از یک لیبل و قرار دادن اطلاعات با ID خاص خودش، فقط کافیه SELECT کنی.

راه سوم : نوشتن یک کلاس
می تونی یک کلاس بنویسی که با دادن اطلاعات مشترک بین دو جدول تگ های خبر رو فرا خونی کنه.
نه دوست من اشتباه گرفتی ...

برای نمایش برچسب های یک خبر خودش تنهایی به یک گرید ویو یا دیتا لیست نیاز داره ...

سوال من در ارتباط با استفاده دیتالیست درون تمپلیت یک گرید ویویی که خودش ساختار تمپلیتی داره ....

منتظر پاسخ دوستان هستم ....

به عبارتی ساده تر قصد نمایش چیزی شبیه زیر را دارم :

موضوع خبر 1
متن خبر1 ..............................
برچسب ها : لینک 1 , لینک 2 , لینک 3 ,لینک 4

________________________________________

موضوع خبر 2
متن خبر2 ..............................
برچسب ها : لینک 1 , لینک 2 , لینک 3

________________________________________

موضوع خبر 2
متن خبر2..............................
برچسب ها : لینک 1 , لینک 2 , لینک 3,لینک 4,لینک 5

________________________________________

و اخبار بعدی ....

KavoshGar_ir
پنج شنبه 09 اردیبهشت 1389, 12:07 عصر
دوستان من میخوام برای یکسری خبر همزمان تک ها مربوط به آن خبر هم نشان بدم ...

اینکار اگر به صورت یک خبر مجزا بود خیلی راحت بوسیله یک گرید ویو و یک دیتالیست امکان پذیر بود چون id خبر را هم از جدول اخبار و هم از جدول تک ها با Request داشتیم ...

اما من میخوام در یک صفحه کلیه اخبار داشته باشم و زیر هر خبر برچسب های آن خبر را نشان بدم ...

کاری که الان انجام دادم از GridView استفاده کردم و با تمپلیت نمایش دادم اما برای استفاده از دیتالیست هم باید از تمپلیت کردنش استفاده کنم که مشکل بوجود میاد ...

اولا برای این قضیه یعنی نمایش اخبار در صفحه و نمایش تگ ها ( به صورت افقی ) در زیر هر خبر راه حل بهتری سراغ دارید؟! از چه ابجکت هایی استفاده کنم بهتره؟!

ثانیا زمانی که در تمپلیت گرید ویو از تمپلیت دیتا لیست استفاده میکنم نام دیتا لیست را در کد بی هایند ندارم که بایندش کنم چطور میشه مشکل را حل کرد؟!
داشتم گشتی میزدم دیدم تاپیکی که چند وقت پیش زدم و کسی جواب نداد همینطوری رها شده ...جواب سوالم را که خودم پیدا کردم اینجا میگذارم در آینده اگر کسی چنین سوالی داشت با سرچ پیدا کنه ... بنابراین ...
سلام خودم! ببین مهندس ... :لبخند:
اگر چنین دیزاینی داشته باشیم



<asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False" Height="240px"
Style="z-index: 100; left: 208px; position: absolute; top: 152px" Width="752px">
<Columns>
<asp:BoundField DataField="imagename" />
<asp:BoundField DataField="RecordID" HeaderText="RecordID">
<ItemStyle Width="20px" />
</asp:BoundField>
<asp:BoundField DataField="UserID" HeaderText="UserID">
<ItemStyle Width="20px" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:DataList ID="DataList2" runat="server" Style="z-index: 101; left: 0px; position: absolute;top: 0px">
<ItemTemplate>
<%# Container.DataItem("Title") %>
<%# Container.DataItem("Address") %>
<%# Container.DataItem("StartDate") %>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
<ItemStyle Width="500px" />
</asp:TemplateField>
</Columns>
</asp:GridView>



مشخص داخل یک گریدویو از یک دیتا لیست داخلی استفاده شده ... در قسمت کد بی هایند
نمی تونیم به راحتی به دیتا لیست تعریف شده در داخل گریدویو استفاده کنیم ... اما
از ایونت گریدویو RowDataBound استفاده می کنیم ... برای دسترسی به اشیا دیتالیست از فایند کنترل استفاده میکنیم ....


Protected Sub Gridview1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Gridview1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim data As DataList = e.Row.FindControl("Datalist2")

Dim name As String = e.Row.Cells(0).Text
If Not name = "Default" Then
e.Row.Cells(0).Text = "<p align=""right""><img src=""http://www.theravive.com/uploads/images/" & e.Row.Cells(2).Text & "_" & name & """ alt=""pic"" /></p>"
Else
e.Row.Cells(0).Text = "<img src=""http://www.theravive.com/uploads/images/deathvalley.jpg"" alt=""pic"" />"
End If
End If
End Sub
End Class

کدهایی که گذاشتم مربوط به پروژه خودم نبود و از این لینک استفاده کردم :
http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_23136241.html

در حال اگر کسی باز هم مشکلی داشت به هم پیام بده تا کدهایی که خودم نوشتم و به زبان سی شارپ هست را در اینجا قرار بدم ...

Vahid_moghaddam
پنج شنبه 09 اردیبهشت 1389, 21:21 عصر
http://barnamenevis.org/forum/showthread.php?t=213265#8