ورود

View Full Version : چطوری عنوان خبر رو در پنجره ی مرورگر ادامه آدرس قرار برم؟



aspismylove
پنج شنبه 19 اسفند 1389, 16:36 عصر
سلام دوستان خسته نباشید

من میخام که عنوان خبر رو در صفحه مرورگر هنگامی که کاربر روی ادامه خبر کلیک کرد نمایش داده بشه و ... .

ببینید من توی دکمه ادامه خبر یا ... این کد و مینویسم :

برای مثال :


<a href="readmore.aspx?DetailNewsID='<# eval ("id")' ">Read More</a>


که با این کد در صفحه نمایشگر اینطوری نمایش داده میشه :


http://www.test.com/readmored.aspx?DetailnewsID=2


ولی من میخام که اینطوری نمایش بدم :


"عنوان خبر"=http://www.test.com/readmored.aspx?DetailnewsID=2&title


ممنون میشم راهنمایی کنین

منتظرم :قلب::قلب::قلب:

b.paseban
پنج شنبه 19 اسفند 1389, 16:50 عصر
سلام بر شما.
این لینک میتونه کمکتون کنه.
http://www.asp.net/master-pages/tutorials/specifying-the-title-meta-tags-and-other-html-headers-in-the-master-page-cs

aspismylove
پنج شنبه 19 اسفند 1389, 17:25 عصر
سلام بر شما.
این لینک میتونه کمکتون کنه.
http://www.asp.net/master-pages/tutorials/specifying-the-title-meta-tags-and-other-html-headers-in-the-master-page-cs

دوست عزیز ممنون از کمکتون ، ولی من میخام که عنوان خبر رو بفرتم به نوار آدرس مرورگر دقیقا مثل همین سایت شما اگه الان آدرس مرورگر رو ببینید .........

وباز هم ممنون :قلب:

b.paseban
پنج شنبه 19 اسفند 1389, 18:03 عصر
ا.ن مقاله رو اگر کامل بررسی کنی میگه چکار باید بکنی:




protected void Page_Load(object sender, EventArgs e)
{
Page.Title = string.Format("Master Page Tutorials :: About :: {0:d}", DateTime.Now);
}


توی اینجا متن داخل string.format بالای صفحه چاپ میشه.
خوب شما میتونی بجای اون متن اون فیلدی از دیتا بیس رو که صفحه در اونجا قرار داره رو بریزی.
برای اینکارم میتونی به دیتا بیس وصل بشی و اون فیلد رو از دیتا بیس بخونی و بریزی توی یه viewstate و اون viewstate رو بجای متن string.format قرار بدی

aspismylove
پنج شنبه 19 اسفند 1389, 18:18 عصر
ا.ن مقاله رو اگر کامل بررسی کنی میگه چکار باید بکنی:




protected void Page_Load(object sender, EventArgs e)
{
Page.Title = string.Format("Master Page Tutorials :: About :: {0:d}", DateTime.Now);
}


توی اینجا متن داخل string.format بالای صفحه چاپ میشه.
خوب شما میتونی بجای اون متن اون فیلدی از دیتا بیس رو که صفحه در اونجا قرار داره رو بریزی.
برای اینکارم میتونی به دیتا بیس وصل بشی و اون فیلد رو از دیتا بیس بخونی و بریزی توی یه viewstate و اون viewstate رو بجای متن string.format قرار بدی

یک چیز بگم ناراحت نمیشی ؟؟؟؟؟؟ :افسرده:

میشه لطف کنی و کمی بیشتر توضیح بدی ؟؟؟؟؟؟ آخه من هیچ چیز از view state نمیدونم ...

ممنون :ناراحت:

b.paseban
پنج شنبه 19 اسفند 1389, 18:34 عصر
یک چیز بگم ناراحت نمیشی ؟؟؟؟؟؟
میشه لطف کنی و کمی بیشتر توضیح بدی ؟؟؟؟؟؟ آخه من هیچ چیز از view state نمیدونم ...
ممنون

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

خوب شما می خوای title خبر یا چیزه دیگه ای رو بالای تیتر browser مشخص کنی.
شما باید اون title رو یه جایی نگه داری و بعد از اون استفاده کنی.مثل همین جا.شما میخوای یه پارامتری رو پاس بدی و اون رو یه جایی نشون بدی(بالای browser).

خوب ما میایم اون title رو میریزیم توی یه viewstate بعدش توی page.title=string.format(""); استفاده کنیم.

شما اگر با hyperlink اون مقدار(مقدار query string ) رو پاس میدی میتونی توی code behind به وسیله request.querystring بهش دست پیدا کنی.

ولی یه مشکلی که بوجود میاد اینه که ما معمولا یه int رو بعنوان query string پاس میدیم و ما می خواهیم که متن مربوط به اون id رو نمایش بدیم.

خوب واسه اینم میتونی یه query سمت دیتابیس بزنی و یه شرط بزاری و title رو بخونی که id اون مساوی querystring هست.

کمکت کردم؟:چشمک:

aspismylove
پنج شنبه 19 اسفند 1389, 19:01 عصر
نمیدونم چطوری تشکر کنم خیلی ممنون داشی

به جز دکمه تشکر چیزی نمیتونم بگم

فعلا یا علی :قلب: :بوس:

b.paseban
پنج شنبه 19 اسفند 1389, 19:13 عصر
اینم یه کد واسه این کار:




string title = Request.QueryString["ID"];
SqlConnection conn = "رشته اتصال"
conn.Open();
string com = " SELECT [Title] FROM [Tablename] WHERE ([Fieldname] = " + title + ")";
SqlCommand commandfolder = new SqlCommand(com, conn);
commandfolder.CommandType = CommandType.Text;
SqlDataReader dtr = commandfolder.ExecuteReader();
if (dtr.HasRows)
{
while (dtr.Read())
{
ViewState["title"] = dtr["Title"].ToString();
}
}
//
Page.Title = string.Format(ViewState["title"].ToString());



توی اینجا ما اومدیم اول به دیتا بیس وصل شدیم و بعدش فیلدی رو خوندیم که fieldname اون برابر مقدار فیلد پاس داده شده هست.

fieldname همون مقدار querystring ما هست.

بعدشم ما اومدیم بوسیله sqldatreader اون فیلد(Title) رو خوندیم و ریختیم توی یه viewstate .

بعد اون Viewstate رو ریختیم داخل Page.Title = string.Format(ViewState["title"].ToString());

raziee
پنج شنبه 19 اسفند 1389, 21:27 عصر
این تاپیک خیلی برام جالب بود.
ایجاد کننده ی تاپیک خودش یادش رفت سوالش چی بود :متعجب:
پرسش گر:


ولی من میخام که اینطوری نمایش بدم :

"عنوان خبر"=http://www.test.com/readmored.aspx?DetailnewsID=2&title

پاسخ دهنده:


خوب شما می خوای title خبر یا چیزه دیگه ای رو بالای تیتر browser مشخص کنی.
شما باید اون title رو یه جایی نگه داری و بعد از اون استفاده کنی.مثل همین جا.شما میخوای یه پارامتری رو پاس بدی و اون رو یه جایی نشون بدی(بالای browser).

و در نهایت تشکر پرسش گر:

نمیدونم چطوری تشکر کنم خیلی ممنون داشی

به جز دکمه تشکر چیزی نمیتونم بگم

جناب aspismylove سوال شما مگه در مورد URL نبود؟؟؟؟
اولا زیبا تر میشه که به جای :

"عنوان خبر"=http://www.test.com/readmored.aspx?DetailnewsID=2&title
آدرسی شبیه به این داشته باشید:


http://www.test.com/News/News-2/NewsTitle.aspx

که در این آدرس 1 کوئری استرینگ پر اهمیت خواهید داشت و اون NewsID است.
برای پیاده سازی این آدرس از URL Rewriting استفاده کنید(در موردش تحقیق کنید.)

اما برای موتورهای جستجو و مبحث SEO بهتره Title صفحه رو با عنوان خبر Set کنید. اما نه به روشی که دوستمون b.paseban توضیح دادند.

ViewState برای نگهداشتن وضعیت صفحه هست تا در PostBack بشه ازشون استفاده کرد.(که به دلیل بالا بردن حجم صفحه تنها در صورت لزوم ازش استفاده کنید!!!).
Title یک صفحه چه اهمیتی در PostBack داره ؟؟
علاوه بر این ، همون طور که میدونید(یا بهتره تحقیق کنید) ViewState وضعیت صفحه رو تعین میکنه و این وضعیت برای هر صفحه که درخواست میشه با صفحه دیگه میتونه متفاوت باشه.
یعنی اگر End User صفحه ی News.aspx رو درخواست بده ویواستیت ها برای این صفحه ایجاد میشن و اگر کاربر دیگه ای همین صفحه ی News.aspx رو درخواست بده ، مجددا این ویو استیت ها تولید میشن.

اما برای کم کردن درخواست ها به دیتابیس و بالا بردن پرفرمنس بهتره بعد از اولین درخواست اطلاعات کش بشوند(در RAM سرور نگهداری شوند).
البته توجه کنید که اطلاعاتی که زیاد درخواست میشن رو کش کنید نه اطلاعاتی که درخواست کمی دارند.

komeil64
جمعه 20 اسفند 1389, 12:01 عصر
بهترین راه برای این خواسته شما استفاده از URL Rewriting هستش

اوبالیت به بو
جمعه 20 اسفند 1389, 22:43 عصر
سلام

2 تا روش پیشنهاد می کنم

1) نگاهی به URLRouting در دات نت 4 بندازید. بوسیله اون روش می تونید اون کار رو انجام بدید. (کلاس RoutTable و اون صحبت ها....)

2) در دات نت 4 یه فسقل دستوری اضافه شده که کار شما رو تا حدودی راه می ندازه و اون هم اضافه شدن یک قابلیت خوب هست. کارش این هست که شما به صورت run time می تونید keyword و Description برای هر صفحه که دلخواه هست generate کنید.

دستورات Page.MetaDescription و Page.MetaKeywords این کار رو انجام می دن:




http://www.dotnetcurry.com/ShowArticle.aspx?ID=477