PDA

View Full Version : درج مقدار کوری استرینگ در تکست باکس



pedram_ns
یک شنبه 22 اسفند 1389, 11:59 صبح
با سلام
من در تمامی صفحات سایتم یک قسمت سرچ دارم وقتی کاربر در هر صفحه ایی یک عبارت رو سرچ می کنه ، عبارت رو با کوری استرینگ به صفحه search می فرستم و عملیات جستجو رو انجام می دم در عین حال مقدار جستجو شده رو در تکست باکس صفحه search هم می نویسم.
وقتی از صفحات دیگه به صفحه search می رم این عبارت به درستی در جای خودش(تکست باکس) نوشته میشه ولی اگردر همون صفحه search یک عبارت جدید وارد و ارسال کنم همون عبارت قبل دوباره در تکس باکس نوشته و جستجو می شه. مثل اینکه مقدار کوری استرینگ قبل رو دوباره می خونه.
باید چکار کنم؟

Behrang_a
یک شنبه 22 اسفند 1389, 12:09 عصر
اون مقدار تکست باکس رو چطوری به صفحه search برمیگردونی ؟

pedram_ns
یک شنبه 22 اسفند 1389, 14:24 عصر
تمامی جستجو ها با کوری استرینگ مقدار درون تکس باکس رو به صفحه search.aspx می فرستند.

Behrang_a
یک شنبه 22 اسفند 1389, 14:27 عصر
تمامی جستجو ها با کوری استرینگ مقدار درون تکس باکس رو به صفحه search.aspx می فرستند.

از Response.Redirect استفاده میکنی ؟ امکانش هست کدت رو اینجا بزاری ؟ خیلی عجیبه :متفکر:

pedram_ns
یک شنبه 22 اسفند 1389, 14:50 عصر
برای ارسال عبارت جستجو شده با کوری از کد زیر استفاده می کنم:


Protected Sub infobtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles infobtn.Click
Dim info As String = infotxt.Text
Response.Redirect("searchinfo.aspx?q=" & info)
End Sub

در رویداد لود صفحه هم با کد زیر کوری رو می گیرم و در تکس باکس نشون میدم:


query = Request.QueryString("q")
infotxt.Text = query

اگر این کد آخر برای نمایش query در تکس باکس رو ننویسم همه چیز کار می کنه(به غیر از درج جستجو در تکس باکس) ولی وقتی این کد اضافه می شه با جستجو عبارت جدید همون عبارت قبل در تکس باکس نوشته و جستجو هم بر اساس همون عبارت قبل انجام میشه.

pedram_ns
یک شنبه 22 اسفند 1389, 15:06 عصر
خوب با اضافه کردن این کد درست شد:


If Page.IsPostBack = False Then

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

Behrang_a
یک شنبه 22 اسفند 1389, 15:11 عصر
برای ارسال عبارت جستجو شده با کوری از کد زیر استفاده می کنم:


Protected Sub infobtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles infobtn.Click
Dim info As String = infotxt.Text
Response.Redirect("searchinfo.aspx?q=" & info)
End Sub

در رویداد لود صفحه هم با کد زیر کوری رو می گیرم و در تکس باکس نشون میدم:


query = Request.QueryString("q")
infotxt.Text = query

اگر این کد آخر برای نمایش query در تکس باکس رو ننویسم همه چیز کار می کنه(به غیر از درج جستجو در تکس باکس) ولی وقتی این کد اضافه می شه با جستجو عبارت جدید همون عبارت قبل در تکس باکس نوشته و جستجو هم بر اساس همون عبارت قبل انجام میشه.


موضوع اینه تو وقتی اون دکمه رو کلیک میکنی اول یک دور با آدرسی که همین الان هست Page_Load اتفاق میافته بنابراین همون QueryString سابق مجدد به تکست باکست اختصاص داده میشه و بعد تازه میاد رویداد رو که در واقع همون Redirect شدن هست رو انجام میده که با توجه به چیزی که گفتم با همون مقدار سابق انجام میشه.
بهترین کار اینه که اون قسمت که داری تکست باکس رو بر اساس QueryString پر میکنی رو بزاری تو شرط اینکه PostBack هست یا نه اگر نبود انجام بده و اگر PostBack بود انجام نده


خوب گویا خودت به جواب رسیدی ::لبخند: تا پست کردم دیدم