ورود

View Full Version : استفاده از session در Gridview



elham1611
چهارشنبه 12 فروردین 1388, 11:23 صبح
با سلام
محتویات یک بانک اطلاعاتی رو بوسیله Gridview درasp.net فراخوانی کردم و یک ستون دیگه از نوع hyperlink هم به Gridview اضافه کردم.

میخواستم وقتی که روی hyperlink کلیک میکنم یک سری اطلاعات رو که مربوط به سطری میشه که در اون hyperlink رو زدم وارد session کنه و در صفحه بعد با توجه به اطلاعات اون session نتایجی رو به من نشون بده.

کد زیرو رو هم در قسمت Gridview وارد کردم
-------------------------------------------------------------------------------------
Session["x"] = GridView1.SelectedDataKey.Value.ToString()
Response.Redirect("2.aspx")
------------------------------------------------------------------
اما این روش با استفاده فیلدی از نوع select جواب میده و فیلدی از نوع hyperlink جواب نمیده و در صفحه بعد اطلاعاتی نشان داده نمیشه !!!

لطفا من رو راهنمایی کنید .
ممنون/الهام

raziee
چهارشنبه 12 فروردین 1388, 12:15 عصر
نیاز هست در رویداد SelectedIndexChanged این کد ها نوشته بشه.


Session["sessionName"] = selectgroupGridView.SelectedRow.Cells[1].Text.ToString();

عددی که در بین [] نوشته شده بیانگر ستونی است که در سطر انتخاب شده

elham1611
چهارشنبه 12 فروردین 1388, 13:38 عصر
نیاز هست در رویداد SelectedIndexChanged این کد ها نوشته بشه.


Session["sessionName"] = selectgroupGridView.SelectedRow.Cells[1].Text.ToString();
عددی که در بین [] نوشته شده بیانگر ستونی است که در سطر انتخاب شده

-----------------------------------------------------------------------------------------------------
متشکر اما سطری که انتخاب میشه معلوم نیست.
در این شرایط از چه کدی باید استفاده بشه؟

raziee
چهارشنبه 12 فروردین 1388, 20:36 عصر
ببینید شما در جدول یک کلید دارید درسته؟ خوب با این دستور فیلد کلید رو به دست میارید و در هرکجا که خواستید نگه داری میکنید.
و در انتها هر کجا که خواستید اطلاعات نمایش داده بشه بوسیله همون کلید از جدولتون Select میگیرید.

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

iman_ad
چهارشنبه 12 فروردین 1388, 21:55 عصر
چرا از querysrtring استفاده نمی کنی؟

elham1611
پنج شنبه 13 فروردین 1388, 00:54 صبح
چرا از querysrtring استفاده نمی کنی؟

how can i use querystring in this problem?

iman_ad
پنج شنبه 13 فروردین 1388, 02:13 صبح
دوست من session به نظر من ایجا راه حل مناسبی نیست اگر توجیه مناسبی برای استفادش نداشته باشی
اگه بخاطر امنیت ازش استفاده می کنی توجیه داره
اگه می خوای تو باقی صفحات (بیش از یک صفحه ) ازش استفاده کنی مثل یک guide که به یک کاربر اشاره می کنه.
در غیر این صورت بار سرورت فقط بالا می بری.
با یک querystring و یک خط کد نویسی می شه این کار کرد.



<asp:HyperLink id="HyperLink"
Text='<%#Eval("Name")%>'
NavigateUrl='<%#Eval("Id","page2.aspx?id={0}”)%>'
Runat="server" />

مثلا تو کد بالا id یک querystring که با فیلد Id داخل بانک BIND میشه.
وقتی رو hyperlink کیک کنی به صفحه بعدی می ری که id قابل بازیابی هستش

اگه سوالی هست من در خدمتم

elham1611
پنج شنبه 13 فروردین 1388, 09:57 صبح
دوست من session به نظر من ایجا راه حل مناسبی نیست اگر توجیه مناسبی برای استفادش نداشته باشی
اگه بخاطر امنیت ازش استفاده می کنی توجیه داره
اگه می خوای تو باقی صفحات (بیش از یک صفحه ) ازش استفاده کنی مثل یک guide که به یک کاربر اشاره می کنه.
در غیر این صورت بار سرورت فقط بالا می بری.
با یک querystring و یک خط کد نویسی می شه این کار کرد.



<asp:HyperLink id="HyperLink"
Text='<%#Eval("Name")%>'
NavigateUrl='<%#Eval("Id","page2.aspx?id={0}”)%>'
Runat="server" />
مثلا تو کد بالا id یک querystring که با فیلد Id داخل بانک BIND میشه.
وقتی رو hyperlink کیک کنی به صفحه بعدی می ری که id قابل بازیابی هستش

اگه سوالی هست من در خدمتم

ممنون
ولی من از نوشته های شما مطلبی دستگیرم نشد. اگر ممکنه دستورات رو به زبان as.net نقل کنید ممنون میشم.
منظورم دستوراتی است که در قسمت page.aspx.cs مینویسند..
-----------------------------------------------------------------------------------
توضیح :
فرض میکنیم با استفاده از gridview در صفحه اول 3 تا ستون داریم (a,b,c) که ستون a کلید است و b هایپرلینکی به صفحه دوم است .

هدفم این است که که اگر مثلا (1,b1,c1 )در یک سطر هستند و ما روی b1 کلیک میکنیم در صفحه دوم c1 رو نمایش بده.. دقیقا مثل سیستمهای خبری .
اگر querystring راحت تره میشه کدشو برام بزارین؟
ممنون/الهام

raziee
جمعه 14 فروردین 1388, 13:14 عصر
صفحه مبدا :

Response.Redirect("Destination.aspx?t0=meysam&t1=daliri")


صفحه مقصد :



dim name as string= Request.QueryString("t0").ToString
dim surname as string=Request.QueryString("t1").ToString


این کد رو دوستمون meysam_12001 نوشته بودند در پستی که من براتون گذاشتم.

elham1611
جمعه 14 فروردین 1388, 15:34 عصر
صفحه مبدا :

Response.Redirect("Destination.aspx?t0=meysam&t1=daliri")
صفحه مقصد :



dim name as string= Request.QueryString("t0").ToString
dim surname as string=Request.QueryString("t1").ToString
این کد رو دوستمون meysam_12001 نوشته بودند در پستی که من براتون گذاشتم.

اقا این چه ربطی داشت به سوال من

online_mansoor2007
جمعه 14 فروردین 1388, 16:42 عصر
سلام

ببینید دوست من شما در یک جدول ستون های زیادی ممکن هست داشته باشید . در این حالت زمانی که شما مثلاً می خواهید اطلاعات یک ردیف رو به یک صفحه هدف ارسال کنید باید یک فیلد ازون ردیف روبه عنوان کلید در نظر بگیرید و مقدار اون رو به صفحه هدف ارسال کنید و در اون صفحه از اون یک مقدار استفاده کنید و اگه نیاز به اطلاعات بیشتری داشتید مجددا بر حسب مقداری که در دست دارید از بانک select کنید . نمیدونم تا اینجا خوب گفتم یا نه . خوب حالا یه مثال می زنم :

فرض کنید جدول شما دارای فیلد های زیر هست :

ID,Name,Family,Age,Ghad,Vazn,Tavalod

در صفحه 1.aspx شما مقدار های ID,Name,Family را استخراج کنید . به نظر من بجای hyperlink از button استفاده کنید . چون ما در hyperlnk امکان رویداد نویسی نداریم . پس نمی تونیم session ایجاد کنیم . یه ستون edit Command اضافه کنید و در رویداد Editcommand شی دیتا گرید دستور زیر را وارد نمایید


Dim Id As String
Id = e.Item.Cells(.......).Text
یا این کد



Dim Id As String
Id = selectgroupGridView.SelectedRow.Cells(.....).Text

بجای ......... شماره ستون مورد نظر را وارد کنید . این دستور مقدار موجود در ستون ردیف انتخاب شده را به ما می دهد . در این مثال ستون ID,Name و Fmily داریم که به ترتیب ستون Id میشه ستون 0 ما و Name میشه ستون 1 و family میشه ستون 2 ما . پس با این تفاصیر برای دریافت مقدار Id ردیف مورد نظر از دستور زیر استفاده می کنیم :



Dim Id As String
Id = e.Item.Cells(0).Text
گفتیم شماره سلول ID برابر با 0 هست که در دستور بالا ما 0 زدیم
حالا متغیر ID مقدارش برابر با مقدار ID ردیفی میشه که ما بر روی Button اون کلیک کردیم . این تا اینجا
حالا واسه ارسال به صفحه 2.aspx دستورات زیر را استفاده کنیم :


(Me.Sesson.Add("IDValue",Id
(response.Redirect("2.aspx


حالا ما در صفحه 2 ای دی ستون انتخاب شده را داریم . هر کاری دوست دارید باهاش انجام بدید:لبخند: امیدوارم خوب گفته باشم :ناراحت:

elham1611
جمعه 14 فروردین 1388, 17:28 عصر
سلام

ببینید دوست من شما در یک جدول ستون های زیادی ممکن هست داشته باشید . در این حالت زمانی که شما مثلاً می خواهید اطلاعات یک ردیف رو به یک صفحه هدف ارسال کنید باید یک فیلد ازون ردیف روبه عنوان کلید در نظر بگیرید و مقدار اون رو به صفحه هدف ارسال کنید و در اون صفحه از اون یک مقدار استفاده کنید و اگه نیاز به اطلاعات بیشتری داشتید مجددا بر حسب مقداری که در دست دارید از بانک select کنید . نمیدونم تا اینجا خوب گفتم یا نه . خوب حالا یه مثال می زنم :


با با هایپر لینک مد نظرمه . ایت همه لطف کردین نوشتین به درد من اصلا نمیخوره. ممنون

online_mansoor2007
جمعه 14 فروردین 1388, 17:31 عصر
آخه دوست عزیز شما در حالت عادی با HyperLink واسه من Session ایجاد کن تا بعد من شیوه ایجاد Session توسط Hyperling در گرید ویو را بگم !!!!!!!!!!!!!!!!! عجباااااااااااااااااااااا ا

online_mansoor2007
جمعه 14 فروردین 1388, 17:33 عصر
شما اگه بخوای این کار رو بکنی باید از QueryString استفاده کنی نه session . حالا توضیح بدم؟

online_mansoor2007
جمعه 14 فروردین 1388, 17:37 عصر
ضمناً جرا روی هایپرلینک تاکید دارید؟؟؟!!! به خاطر ظاهرش؟؟؟؟؟

elham1611
شنبه 15 فروردین 1388, 02:18 صبح
ضمناً جرا روی هایپرلینک تاکید دارید؟؟؟!!! به خاطر ظاهرش؟؟؟؟؟

مشکل رو حل کردم ممنون :لبخندساده:

شما میدونید کدها جاوا اسکریپت رو چه جوری وارد دات نت میکنن؟

ممنون/الهام

online_mansoor2007
شنبه 15 فروردین 1388, 08:22 صبح
مشکل رو حل کردم ممنون :لبخندساده:

ممنون/الهام

خوشحالم که مشکل حل شد . اما اگه بفرمایید چطوری حل شد خیلی خوب مشیه چون شاید مشکل شما ، مشکل خیلی های دیگه هم باشه

online_mansoor2007
شنبه 15 فروردین 1388, 08:54 صبح
شما میدونید کدها جاوا اسکریپت رو چه جوری وارد دات نت میکنن؟



چه کاری می خواهید انجام بدید ؟؟ این خیلی مهم هست .

elham1611
شنبه 15 فروردین 1388, 12:15 عصر
چه کاری می خواهید انجام بدید ؟؟ این خیلی مهم هست .

ببینید من یک gridview دام که یکی از ستونهاش از نوع هاپر اینک هستش و به صفحه دوم میره.

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

online_mansoor2007
شنبه 15 فروردین 1388, 12:21 عصر
ببینید من یک gridview دام که یکی از ستونهاش از نوع هاپر اینک هستش و به صفحه دوم میره.

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

سلام

باید در کدهای HTML مربوط به hyperlink دستورات رو اضافه کنید .توابع رو بنویسید و در hyperlink فراخوانی کنید