PDA

View Full Version : سیستم نمایش اخبار در سایت



asrah6
شنبه 29 آبان 1389, 12:22 عصر
من می خواهم در قسمتی از صفحه سایتم نمایش اخبار داشته باشم به طوری که اخبار را از بانک sql بخواند و یک نمونه هم پیدا کردم که بانک اطلاعاتی آن acces است ولی با عوض کردن بانک با sql اجرا نمی شود کسی از دوستان می تواند راهنمایی کند و یا کد را تصحیح کند با تشکر
فایل ضمیمه نمونه کار می باشد.

majnun
شنبه 29 آبان 1389, 12:30 عصر
شما یک کتاب asp.net تهیه کن و مطالعه کنید
یا یک استاد خوب ...

asrah6
شنبه 29 آبان 1389, 12:56 عصر
شما یک کتاب ASP.NET تهیه کن و مطالعه کنید
یا یک استاد خوب ...
ما یک راهنمایی کوچیک خواستیم نه این همه توضیحات
چشم بسته غیب می گیدا!!!!
ولی باز هم تشکر
در ضمن خانه من قلب نه قبل

alonemm
شنبه 29 آبان 1389, 13:01 عصر
میتونید از یک گرید ویو برای این کار استفاده کنید.
(برای اطلاع از نحوه کارکرد جستجو کنید.)

asrah6
شنبه 29 آبان 1389, 14:23 عصر
میتونید از یک گرید ویو برای این کار استفاده کنید.
(برای اطلاع از نحوه کارکرد جستجو کنید.)
اطلاعات : می دونم که باید دو صفحه داشته باشم و در هر صفحه یک گرید ویو که اطلاعات را از بانک بخونه .گرید ویو در صفحه اول id, subject , date
گرید ویو در صفحه دوم id , news
حال سوال من این است که و قتی کاربر بر یک عنوان خبر کلیک کرد متن همان خبر را در گرید ویو صفحه دوم نمایش دهم
لطفا راهنمایی کنید. یا نمونه کد بدهید

alonemm
شنبه 29 آبان 1389, 14:56 عصر
میتونید id رکورد ذخیره شده رو داخل یک سشن ذخیره کنید و در صفحه بعد بر اساس این id دستور انتخاب رو بنویسید.

asrah6
شنبه 29 آبان 1389, 15:15 عصر
میشه یک نومه کار به من بدهید تا حالا با سشن کار نکرده ام
متشکرم

alonemm
شنبه 29 آبان 1389, 15:28 عصر
تعریف یک سشن:


sessen['name']=value

استفاده در صفحه بعد:


string a;
a=sessen['name'].tostring()

asrah6
شنبه 29 آبان 1389, 16:26 عصر
سشن را باید به کجای کد صفحه اضافه کرد؟

alonemm
شنبه 29 آبان 1389, 21:46 عصر
توی رویداد کلیک دکمه ای که میخاید بعد از کلکیک کردن روش به صفحه ادامه خبر بره.

gama118
یک شنبه 30 آبان 1389, 09:16 صبح
بنظرم نيازي به سشن نيست كافيه آي دي خبر روي موقعي كه ميخواي بري به صفحه دوم تو كوئري استرينگش بزاري
www.secondpage.aspx?id=323

alonemm
یک شنبه 30 آبان 1389, 11:19 صبح
استفاده از سشن مزایای بیشتری داره اول که دیگه نیازی به ساختن کوئری استرینگ نیست و اینکه در بحث SEO هم مشکی پیش نمیاد.

Pascal
یک شنبه 30 آبان 1389, 15:45 عصر
اینجا (http://barnamenevis.org/forum/showpost.php?p=177583&postcount=1) را ببینید.

baran_mehr
یک شنبه 30 آبان 1389, 17:51 عصر
بنظرم نيازي به سشن نيست كافيه آي دي خبر روي موقعي كه ميخواي بري به صفحه دوم تو كوئري استرينگش بزاري
www.secondpage.aspx?id=323من هم همین پیشنهاد رو میدم. فکر نمیکنم چندان نیازی به Sessionباشه

Mohandes2009
یک شنبه 30 آبان 1389, 18:50 عصر
این مثالی که گذاشتی همه چی توش واضحه که!!! خیلی خوبه!دقیقا بگو چی می خوای تا بهتر راهنمایی کنیم

asrah6
یک شنبه 30 آبان 1389, 23:03 عصر
این نمونه که گذاشتم با دیتابیس اکسس کار می کند و تمام برنامه نویسی ها در صفحه default بر مبنای connection اکسس می باشد ولی من می خواهم این کار را با sql انجام بدهم و نیازه که connection ها را برمبنای sql تغییر دهم و تا حدودی هم اینکار را کردم ولی error می دهد و ایراد می گیرد وراستش توش موندم و از شما کمک می خواهم که برنامه نویسی آن بر پایه دیتابیس sql تغییر یابد
با تشکر از همگی شما

yakooza2009
یک شنبه 30 آبان 1389, 23:15 عصر
شما یک کتاب ASP.NET تهیه کن و مطالعه کنید
یا یک استاد خوب ...


:لبخند::لبخند:

asrah6
یک شنبه 30 آبان 1389, 23:23 عصر
:لبخند::لبخند:
ممنون از راهنمایی شما :لبخند::لبخند:
این را نمی دونستم مطالعه هم دارم ولی یه جاهایی گیر افتادم
این سایت (http://how2learnasp.net/article.aspx?code=fc9e7520-6d32-47e5-9a06-2e1c2a3f2268) مشابه این مورد را توضیح داده است
بیایید به جای سرسری گرفتن و نقل قول کردن به هم مطلب یاد بدهیم تا این کار سلسله وار ادامه یابد و آموزشهای مفید را به همدیگر معرفی کنیم :تشویق::تشویق::تشویق:

روزهای بارانی
دوشنبه 01 آذر 1389, 07:01 صبح
سلام

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

baran_mehr
دوشنبه 01 آذر 1389, 07:44 صبح
الزامی وجود نداره که از گرید استفاده کنید . میتونید از سایر اشئا هم استفاده کنید مثل لیست ویو و ...
اگر فرض کنیم دیتابیس شما دارای (کد خبر ، عنوان خبر ، متن خبر و ..) باشه شما میتوانید در ابتدا عنوانهای اخباری که میخواهید نمایش دهید. تا در صورتی که کاربری خواست متن خبر را مطالعه کنه با استفاده از یک لینک به صفحه دیگر و یا تو همون صفحه متن خبر نمایش داده بشه
شما میتونید از template های گرید و ... استفاده کنید ، تا در صورت کلیک شدن بر روی هر خبر کد خبر را برای نمایش متن آن استخراج کرده و خبر مرتبط با آن را نمایش دهید

روزهای بارانی
دوشنبه 01 آذر 1389, 08:18 صبح
منظور من این بود که اگه بخوایم با درج هر خبری در سایت اون خبر در یه table جدید در صفحه اولمون قرار بگیره ،و بعد تعداد table ها که زیاد شد به یک صفحه دیگه بره ، و........ چه جوری این table در زمان اجرای برنامه می تونه ایجاد بشه ؟

baran_mehr
دوشنبه 01 آذر 1389, 08:57 صبح
منظور من این بود که اگه بخوایم با درج هر خبری در سایت اون خبر در یه table جدید در صفحه اولمون قرار بگیره ،و بعد تعداد table ها که زیاد شد به یک صفحه دیگه بره ، و........ چه جوری این table در زمان اجرای برنامه می تونه ایجاد بشه ؟
خدمتتون عرض کنم که ، شما یه جدول تو دیتابیستون میسازید برای اخبار
و هر بار که خبری درج میشه در واقع داره یک رکورد به جدولتون Insert میشه، قرار هم نیست این table در زمان برنامه ایجاد بشه(قبلا می سازیدش)
شما میتونید یه گرید تو صفحه بزارید و متصل کنید به جدولتون و بگید اخبار رو نمایش بده، جزو خواص گرید خصوصیتی هست برای اینکه صفحه بندی رو انجام بده

روزهای بارانی
دوشنبه 01 آذر 1389, 09:30 صبح
مثلا همین جا ، وقتی که ما ارسال پاسخ می کنیم یه table جدید ساخته میشه که محتویات پاسخ ما رو در بر می گیره ، چه جوری این table خودش ایجاد می شه ؟

baran_mehr
دوشنبه 01 آذر 1389, 09:52 صبح
وووووواااااااااا:لبخند: من که دارم میگم tableجدید ساخته نمیشه
ببین مثلا ما یک جدول درست میکنیم برای ارسال سوالات و یک جدول برای پاسخ های کاربران:
جدول سوال: کد سوال ، عنوان سوال ، متن سوال ، کاربر ایجاد کننده ...
جدول پاسخ ها: کد سوال(از جدول سوال) ، کد جواب ، متن جواب

حالا فرض کنید من میام یه تایپیک ایجاد میکنم، چون دارم سوالی رو طرح میکنم این رکورد در جدول سوالات قرار میگیره. مثلا به صورت زیر:
جدول سوال:
کد سوال :1200
عنوان سوال:ip چیست
متن سوال: کسی میدونه ip چیست و کجا به کار میاد:لبخند:
کاربر ایجاد کننده:baran_mehr

خوب درواقع با این کار دارم یک رکورد ایجاد میکنم تو جدول سوال ، و حالا هرکی بیاد جواب بده درواقع امده به کد سوال 1200 جواب داده
امیدوارم متوجه شده باشی

روزهای بارانی
دوشنبه 01 آذر 1389, 10:10 صبح
اینطور که من فهمیدم ،
پس این پاسخ ها یک سطر از گرید هستند

بسیار بسیار ممنون

Mohandes2009
دوشنبه 01 آذر 1389, 10:29 صبح
یه نمونه گذاشتم برات که می تونی اخبار را اد کنی و ویرایش کنی و حذف کنی

و نمایش اخبار به همون شکل که می خواستی!




Admin
Mohammad
mohammad123!
User
Hasan
hasan123!



اگه از user وارد بشی صفحه ویرایش را نمی بینی
اگه از admin وارد بشی می بینی

baran_mehr
دوشنبه 01 آذر 1389, 10:35 صبح
هر پاسخ و یا سوال باعث ایجاد یک رکورد میشن(یک سطر) تو جدول خودشون
اگر سوالی پرسیده بشه تو جدول سوال یک سطر ایجاد میشه و اگر پاسخی داده بشه تو جدول پاسخ یک سطر ایجاد میشه
و حالا فرض کنید میخوایم ببینیم چه پاسخهایی به سوال 1200 داده شده،کافیه تو جدول پاسخها همچین دستوری رو بنویسیم:

select * from Requst_qustion where code_qustion=1200
اگر یازم نقطه گنگی برات هست بگو

روزهای بارانی
دوشنبه 01 آذر 1389, 11:35 صبح
مشکلی در SQL اون نداشتم ، فکر می کردl کد های javascript خاصی باید باشند که table رو تولید می کنند .

asrah6
دوشنبه 01 آذر 1389, 21:06 عصر
یه نمونه گذاشتم برات که می تونی اخبار را اد کنی و ویرایش کنی و حذف کنی

و نمایش اخبار به همون شکل که می خواستی!




Admin
Mohammad
mohammad123!
User
Hasan
hasan123!

اگه از user وارد بشی صفحه ویرایش را نمی بینی
اگه از admin وارد بشی می بینی

جناب Mohandes2009 دست مریزاد نمی دونم چگونه تشکر کنم این همون نمونه ای است که می خواستم کمتر جوانمردی پیدا می شود که وقت بگذارد و یک نمونه اینچنین کامل درست کند اونهم بدون هیچ اجر و مزدی
فقط می توانم بگویم تشکر تشکر تشکر تشکر تشکر تششششششششششکر:تشویق::تشویق: :تشویق:

vahidbolbol
جمعه 15 فروردین 1393, 03:17 صبح
سلام
ببخشید من تازه کارم
مشکلم تو گریدویو
اینکه من برای منو خبرهام فقط تیتر خبرهامو با گریدویو گذاشتم اما وفتی رو یک تیتر کلیک میکنم برای نمایش کل خبر با جزئیاتش در صفحه بعد کل خبرهای ثبت شد داخل بانکمو نشون میده من میخوام فقط خبریو که کلیک کردم فقط نشون بده خواهشآ راهنماییم کنید بخدا خیلی لازم دارم کمک شمارو ممنون
بانکم SQL SERVER
با زبان #C

mahasti
جمعه 15 فروردین 1393, 11:50 صبح
سلام
ببخشید من تازه کارم
مشکلم تو گریدویو
اینکه من برای منو خبرهام فقط تیتر خبرهامو با گریدویو گذاشتم اما وفتی رو یک تیتر کلیک میکنم برای نمایش کل خبر با جزئیاتش در صفحه بعد کل خبرهای ثبت شد داخل بانکمو نشون میده من میخوام فقط خبریو که کلیک کردم فقط نشون بده خواهشآ راهنماییم کنید بخدا خیلی لازم دارم کمک شمارو ممنون
بانکم SQL SERVER
با زبان #C


سلام
باید آی دی خبریو که روش کلیک کردی با کوئری استیریگ به صفحه بعد بفرستی و تو صفه بعد باتوجه به آی دی دریافت شده رو خبرات شرط بذاری:
با کلیک روی تیتر باید این اتفاق بیافته:
</a>تیتر خبر<"a href="News?id=Newsid>
و در صفحه News(که میخوای یه خبر نشون بده),تو قسمت کوئری کنترل دیتات کد زیر رو مینویسی:

(["int id = Convert.ToInt32(Request["id

+"=select * from table where id"
id

vahidbolbol
شنبه 16 فروردین 1393, 01:14 صبح
سلام
ببخشیدا بازم سوال دارم من برای تیتر خبرهام از گریدویو استفاده کردم و یک تمپلت درت کردم و داخلش یک هایپرلینک گداشتم و لینکش دادم به صفحه ای که قرار خبر کامل نمایش داده بشه الان این تیکه کد (</a>تیتر خبر<"a href="News?id=Newsid>) من کجا بنویسم؟
راستی این قسمت کوئری کخ گفتید یعنی کجا؟من برای نمایش کل خبرم در صفحه جدید از فرم ویو استفاده کردم این تیکه کدو کجاش بنویسم؟کجاش کوئری رو باید وارد کنم؟
ببخشید من خیلی تازه کارم:ناراحت:

mahasti
یک شنبه 17 فروردین 1393, 19:22 عصر
سلام
ببخشیدا بازم سوال دارم من برای تیتر خبرهام از گریدویو استفاده کردم و یک تمپلت درت کردم و داخلش یک هایپرلینک گداشتم و لینکش دادم به صفحه ای که قرار خبر کامل نمایش داده بشه الان این تیکه کد (</a>تیتر خبر<"a href="News?id=Newsid>) من کجا بنویسم؟
راستی این قسمت کوئری کخ گفتید یعنی کجا؟من برای نمایش کل خبرم در صفحه جدید از فرم ویو استفاده کردم این تیکه کدو کجاش بنویسم؟کجاش کوئری رو باید وارد کنم؟
ببخشید من خیلی تازه کارم:ناراحت:


این کد (</a>تیتر خبر<"a href="News?id=Newsid>) دقیقا باید همون هاپرلینکت باشه,این فرم ویو رو چطوری به بانکت متصل کردی؟تو کد اچ تی ام الش حتما دستور select داری,هرجا که به بانک متصل کردی این رو هم همون جا بنویس...
باز کدت رو بذار تا دقیقتر راهنمایی بشی

vahidbolbol
سه شنبه 19 فروردین 1393, 15:29 عصر
سلام دوست عزیز ممنونم که داری کمکم میکنی
این کد منو اخبارمه که از گریدویو استفاده کردم و داخلش یک هایپرلینک گذاشتم:
<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SDS" EnableModelValidation="True" GridLines="Horizontal" Width="167px">
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
<asp:TemplateField HeaderText="عنوان" SortExpression="titr">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("titr") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink4" runat="server" NavigateUrl="~/Tazehayf.aspx" Text='<%# Eval("titr") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
</asp:GridView>

************************************************** ************************************************** ***********************************
حالا میخوام که با کلیک لو تیتر خبرم تو صفحه جدیدم خبر همون تیتر که کلیک کردم فقط نمایش داده بشه...
ممنون میشم کمکم کنید چون خیلی حیاطی هستش
منتظر جواب دوستان هستم

mahasti
سه شنبه 19 فروردین 1393, 16:54 عصر
اگه بجای تگ hyperlonk از a استفاده کنی بهتره,اما درصورت تمایل مشخصه NavigateUrl باید به این شکل آی دی جدولتو به صفحه دوم بفرستی:

NavigateUrl="~/Tazehayf.aspx?id=TableId"
ودر رویداد فرم لود صفحه ای که میخوای یه خبر نمایش داده بشه به این طریق کد میزنی:

(["int id = Convert.ToInt32(Request["id
()SqlConnection con = new SqlConnection
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
()SqlCommand com = new SqlCommand
com.Connection = con
com.CommandType = CommandType.Text
com.CommandText = "SELECT * from news where Id=" + id
()con.Open
(SqlDataAdapter da = new SqlDataAdapter(com
()DataSet t = new DataSet
(" da.Fill(t, "News
ListView1.DataSource = t
() ListView1.DataBind

vahidbolbol
جمعه 22 فروردین 1393, 01:25 صبح
سلام دوست خوبم
من کارهایی که شما گفتیدو انجام دادم اما در این قسمت کد خطا میگیره:
int id = Convert.ToInt32(Request["id"]);
پیغامش اینه:
Input string was not in a correct format.
تورو خدا کمکم کنید بخدا گیرم بدجور منونم

mahasti
جمعه 22 فروردین 1393, 12:03 عصر
سلام دوست خوبم
من کارهایی که شما گفتیدو انجام دادم اما در این قسمت کد خطا میگیره:
int id = Convert.ToInt32(Request["id"]);
پیغامش اینه:
Input string was not in a correct format.
تورو خدا کمکم کنید بخدا گیرم بدجور منونم

دقت کن این کدو باید بجای تگ hyperlink بنویسی,oneNews صفحه ایه که میخوای یه خبر نشون بده و داخل page_loadاش کدهای قبلی رو نوشتی,idفیلد کلید خبرته که داخل بانک داری و titleهم فیلد عنوان خبرته که میخوای نشون داده بشه,درحقیقت داری با کانکشن استیرینگ کلید خبر انتخابی رو به صفه ی دوم میفرسی و در صفحه دوم با گرفتن این کلید همون یه خبرو نشون میدی...



<a href="oneNews.aspx?id=<%#Eval("Id")%>"><%#Eval("Title") %></a>

vahidbolbol
شنبه 23 فروردین 1393, 14:37 عصر
سلام دوست عزیز این کلا کد گریدویو که منو تیتر خبرم هست :
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EnableModelValidation="True">
<Columns>
<asp:TemplateField HeaderText="titr" SortExpression="titr">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("titr") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<a href="Default2.aspx?id=<%#Eval("Id")%>"><%#Eval("titr") %></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

************************************************** ************************************************** **********************************
همون چیزی که شما گفتید اما از این تیکه کد خطا میگیره :
<a href="Default2.aspx?id=<%#Eval("Id")%>"><%#Eval("titr") %></a>
عنوان خطاشم اینه :
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Id'

mahasti
شنبه 23 فروردین 1393, 19:16 عصر
1.فیلدهای Id و titr که داخل Eval نوشتی باید دقیقا داخل جدولت موجود باشه(از لحاظ املایی دقت کن)...
2.یه کنترل دیتای SqlDataSource1 باید ایجاد کنی و اونو به جدولت وصل کنی...
3.تیکه زیر رو از کدهات حذف کن:
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("titr") %>'></asp:TextBox>
</EditItemTemplate>

vahidbolbol
دوشنبه 25 فروردین 1393, 15:16 عصر
سلام من همه کارهایی که گفتیدو کردم اما بازم نشد!!!
به نظر شما من چیکار کنم؟
میتونید بی زحمت خودتون یک پروژه درست کنید که توش یک صفحه یک منو تیتر خبرهاتون باشه کا با کلیک رو هر تیتر بره به صفحه دیگه کل خبر کلیک شده رو باجزئیات نشون بده؟
میشه این کارو بکنید به خدا دیگه نمیدونم چیکار کنم اگه راه حل بهتری به نظر شما هست حتما بگید چون نیازمند یاری شما هستم
ممنونم از همه