ورود

View Full Version : وقتی صفحه دوباره لود می شه مقدار کوئری استرینگ از بین می ره . چطور می تونم سیوش کنم؟



bahar_engineer
چهارشنبه 13 آبان 1388, 13:11 عصر
سلام

من یه صفحه مدیریتی دارم که برای چند امکان ازش استفاده می کنم. مثلا فرض کنید برای اضافه کردن اخبار ، پژوهش ، مقاله و ...

برای این کار تنها یک صفحه ساختم و بالای صفحه یک لیبل هست... توی صفحه مدیریت روی هر دکمه ای رو که انتخاب کنم بر اساس اون از طریق کوئری استرینگ لیبل توی صفحه اضافه کردن، پر می شه ... و بر اساس مقدار اون لیبل ، مقادیر در اون جدول از بانک ذخیره می شه .

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

ممنون

ali.akhbary
چهارشنبه 13 آبان 1388, 14:07 عصر
هر Event اي رو كه اجرا مي كني آخرش دوباره به صفحه دلخواه با همان Query String هاي مورد نظرت كه همين الان وجود داره Redirect كن.


Response.Redirect("MyWebPage.com?MyString=12")

Aidin
چهارشنبه 13 آبان 1388, 14:52 عصر
با PostBack مقادیر QueryString ار بین نمیره.

bahar_engineer
پنج شنبه 14 آبان 1388, 10:26 صبح
چرا از بین می رفت اومدم یه متغیر استاتیک گذاشتم که دیگه درست شد البته در صورتی که صفحه پست بک بشه

اما وقتی می رم توی یه صفحه دیگه اصلا کوئری استرینگ و نگه نمی داره

چکار کنم؟

این دستورم دادم بهش اما انگار نه انگار :عصبانی++:



Response.Redirect("update_packlist.aspx?part=" + curpart);


که curpart یک متغیره که حاوی اون مقدار کوئری استرینگ می شه .... در واقع من مقدار کوئری استرینگی که پاس می شه رو توی یه لیبل بالای صفحه می ریزم که نشون بده الان صفحه ویرایش کدوم قسمته ... با لیبل هم نتونستم درستش کنم...


وقتی توی صفحه مدیریت توی دستور کلیک یک دکمه همین دستورو می نویسم درست کار می کنه

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


NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.code", "update_pack.aspx?id={0}") %>'


در صفحه update_packlist که لیست خبرها رو نمایش می ده جهت ویرایش، اطلاعات پاس می شن به صفحه update_pack برای همین مقدار کوئری استرینگ و از دست می ده

چطور می تونم توی کد قرمز رنگ مقدار curpart رو هم پاس کنم؟ که یه متغیره؟ هر چی به ذهنم می رسید تست کردم نشد

اسم کوئری استرینگم part هست:



NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.code", "update_pack.aspx?id={0},part=????????") %>'

bahar_engineer
پنج شنبه 14 آبان 1388, 11:58 صبح
راه حل : مشکل اینجا بود که من برای دستور and (,) می ذاشتم در صورتی که باید (&) بذاریم

نهایتا اینطوری می شه یه متغیر پابلیک رو از طریق کوئری استرینگ پاس داد به صفحه مورد نظر



NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.code", "update_pack.aspx?id={0}&part=" + mycurpart) %>

behnam_vb
پنج شنبه 14 آبان 1388, 12:07 عصر
خب چرا تو اون قسمت از Session استفاده نمیکنی ؟
نحوه استفاده => Session("نام")="مقدار"

alireza_s_84
پنج شنبه 14 آبان 1388, 12:44 عصر
سلام:
با پست بک مقدار QueryString از بین نمیره . ضمنا به جای Session بهتره از ViewState استفاده کنید.
موفق باشید