PDA

View Full Version : مشکل با QueryString



jaykob
پنج شنبه 23 دی 1389, 19:38 عصر
سلام دوستان

من یک بخش اخبار دارم که دیتابیس فیلد های id , subject , news رو داره و در مدیریت توسط ckeditor دیتابیس رو پر می کنه . حالا من یک صقحه news.aspx دارم که می خوام عنوان هام یا همون فیلد subject نشون داده بشه یک gridview گذاشتم و با Sql data source وصلش کردم به table مورد نظر . حالا من می خوام کاربر با کلیک بر روی هر کدوم از subject ها در صفحه به صفحه ViewNews.aspx بره و متغییر id اون خبر رو ببره که در کنترلی در اون صفحه خبر نشون داده بشه توی این تمرین لطفا کمک کنید . بعدا از اینکه معنی و مفهوم و کار با Quary String رو متوجه شدم بعدا در مورد کد کردن و دیگر مسائلش سوال می کنم

در ضمن من توی هر صفحه ای این خط رو می نویسم



TextBox1.Text = Page.Request.QueryString("new_id");


زیر قسمت QueryString خط قرمز می کشه و نمی شناستش ...

raziee
پنج شنبه 23 دی 1389, 23:02 عصر
زیر قسمت QueryString خط قرمز می کشه و نمی شناستش ...

به این صورت مقدار رو بگیر

string myQuery = string.Empty;
if (!string.IsNullOrEmpty(Request.QueryString["QueryName"]))
{
myQuery = Request.QueryString["QueryName"];
}

متغییر id اون خبر رو ببره که در کنترلی در اون صفحه خبر نشون داده بشه توی این تمرین لطفا کمک کنید . بعدا از اینکه معنی و مفهوم و کار با Quary String رو متوجه شدم بعدا در مورد کد کردن و دیگر مسائلش سوال می کنم
ID رو نیازی نیست کد کنید. دلیلی برای این کار وجود نداره.
اما بهتره از URL ReWriting استفاده کنید تا URL زیبا تری داشته باشید.
یعنی به جای :YourSite.com/News.aspx?id=12 داشته باشید: YourSite.com/News/News-12.aspx یا YourSite.com/News/12 یا چیزی شبیه به این.

Javad_Darvish_Amiry
پنج شنبه 23 دی 1389, 23:15 عصر
زیر قسمت QueryString خط قرمز می کشه و نمی شناستش ...

TextBox1.Text = Page.Request.QueryString("new_id");

دلیل اون خط قرمز نشناختن QueryString نیست بلکه به خاطر اینه که شما جلوی QueryString پرانتز گذاشتین و باهاش مثل متود برخود کردین، در حالیکه QueryString یه Collection هست و باید از [] (ایندکسر) برای بدست آوردن آیتم مورد نظر استفاده کنید.

بعدا از اینکه معنی و مفهوم و کار با Quary String رو متوجه شدم
منظورتون اینه که QueryString چیه؟

jaykob
پنج شنبه 23 دی 1389, 23:38 عصر
به این صورت مقدار رو بگیر

string myQuery = string.Empty;
if (!string.IsNullOrEmpty(Request.QueryString["QueryName"]))
{
myQuery = Request.QueryString["QueryName"];
}

ID رو نیازی نیست کد کنید. دلیلی برای این کار وجود نداره.
اما بهتره از URL ReWriting استفاده کنید تا URL زیبا تری داشته باشید.
یعنی به جای :YourSite.com/News.aspx?id=12 داشته باشید: YourSite.com/News/News-12.aspx یا YourSite.com/News/12 یا چیزی شبیه به این.

ممنون در رابطه با پاس دادن متغییر در GridView هم اگه لطف کنید و توضیح کاملی بدید . که با کلیک بر روی عنوان خبر id پاس داده بشه به صفحه مورد نظر و به همون شکلی که شما گفتید دریافتش کنم .

و به نظر شما در صفحه مقصد با توجه به اینکه اطلاعات با ckeditor پر شده امکان وجود فونت بزرگ و یا عکس هست . بهتره با چه کنترلی نشونش بدم ؟

بله گفته شما صحیحه در مورد URL ReWriting من خودم سرچ کردم اما آموزش خاصی ندیدم چند موردی هم گفته بودن خیلی سر بسته بود اگر شما وقت دارید در حق من لطف می کنید که این مبحث رو با یک مثال توضیح بدید ...



TextBox1.Text = Page.Request.QueryString("new_id");

دلیل اون خط قرمز نشناختن QueryString نیست بلکه به خاطر اینه که شما جلوی QueryString پرانتز گذاشتین و باهاش مثل متود برخود کردین، در حالیکه QueryString یه Collection هست و باید از [] (ایندکسر) برای بدست آوردن آیتم مورد نظر استفاده کنید.

منظورتون اینه که QueryString چیه؟

بله ممنون متوجه اشتباهم شدم در مورد مسائلی که در بالا گفتم خوشحال می شم شما هم منو راهنمایی کنید

raziee
جمعه 24 دی 1389, 15:27 عصر
ممنون در رابطه با پاس دادن متغییر در GridView هم اگه لطف کنید و توضیح کاملی بدید . که با کلیک بر روی عنوان خبر id پاس داده بشه به صفحه مورد نظر و به همون شکلی که شما گفتید دریافتش کنم .

و به نظر شما در صفحه مقصد با توجه به اینکه اطلاعات با ckeditor پر شده امکان وجود فونت بزرگ و یا عکس هست . بهتره با چه کنترلی نشونش بدم ؟

بله گفته شما صحیحه در مورد URL ReWriting من خودم سرچ کردم اما آموزش خاصی ندیدم چند موردی هم گفته بودن خیلی سر بسته بود اگر شما وقت دارید در حق من لطف می کنید که این مبحث رو با یک مثال توضیح بدید ...
شما سه سوال جداگانه دارید که مطرح کردنش در یک تاپیک بر خلاف قوانین سایت است.
در مورد هر یک از سوالاتتون هم بارها در انجمن مطرح شده.
لطفا جستجو کنید.

jaykob
جمعه 24 دی 1389, 18:42 عصر
شما سه سوال جداگانه دارید که مطرح کردنش در یک تاپیک بر خلاف قوانین سایت است.
در مورد هر یک از سوالاتتون هم بارها در انجمن مطرح شده.
لطفا جستجو کنید.

عذر می خوام شما تنها همون سوال من که مربوط به QueryString می شه رو لطف کنید جواب بدید ممنون می شم به چه شکل با کلیک بر روی موضوع خیر id اون خبر به صفحه مورد نظر پاس داده بشود ...

با تشکر فراوان از شما

raziee
شنبه 25 دی 1389, 09:30 صبح
عذر می خوام شما تنها همون سوال من که مربوط به QueryString می شه رو لطف کنید جواب بدید ممنون می شم به چه شکل با کلیک بر روی موضوع خیر id اون خبر به صفحه مورد نظر پاس داده بشود ...
شما باید یک TemplateField در GridView داشته باشید.
چیزی شبیه به کد زیر:


<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("ID","<a href=\"/ViewNews.aspx?id={0}\" target=\"_blank\">نمایش</a>") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>