PDA

View Full Version : Hit Counter



amuSoheil
دوشنبه 03 شهریور 1382, 19:58 عصر
به نام خدا
می خواهم با asp.net برای سایت یک hit counter (شمارنده)درست کنم .اقای نصیری گفته بودند که با global.asax این کار را باید انجام بدهیم می خواهم ببینم چطوری این کار را انجام بدهم .لطفا بیشتر توضیح بدهید
در بعضی از سایت ها می بینیم که مثلا تعداد دانلود یک فایل را نمایش می دهد. ایده این کار به چه صورت است. یا یک مثال معرفی کنید
لطفا راهنمایی کنید.
با تشکر Amusoheil

Abbas Arizi
دوشنبه 03 شهریور 1382, 20:51 عصر
برای شمارش بازدیدها شما میتونید یک فایل متنی ایحاد کنید و هر بار که رویداد Session_Start (در فایل Gloabl.asax) اتفاق می افته عددی که توی فایل هست رو بخونید و به اضافه یک کنید و عدد جدید رو ذخیره کنید.
(نمیدونم این جواب من با جوابی که استاد خواهند داد چقدر فاصله داره. :oops: )
در مورد شمارش کلیک هم که آقای نصیری قبلا توی دو سه تا تاپیک توضیح داده اند. میتونید یه نگاهی به اونا بندازید.

amuSoheil
چهارشنبه 05 شهریور 1382, 12:54 عصر
خیلی ممنون از راهنمایی شما اما من در تاپیک ها ی قبلی در مورد تعداد دانلود ها چیزی پیدا نکردم .لطفا بیشتر راهنماییی کنید.
این دو تا مثال هم در مورد HIt Counter است
http://www.c-sharpcorner.com/Code/2002/Aug/HitCounterAspNet.asp
http://www.dotnetjunkies.com/Tutorial/ShowContent.aspx?cg=FE19BBDC-D115-45AD-8657-37F4BF1B0593&ForumID=4187</span>
با آرزوی موفقیت

Abbas Arizi
چهارشنبه 05 شهریور 1382, 13:58 عصر
ظاهرا توی این جابجایهای اخیر اون تاپیک مربوط به تعدا داونلود پریده.
اتفاقا برای خود من هم در این مورد سوال پیش اومده. چون آقای نصیری تو اون تاپیک گفته بودن لینکهای روی DataGrid رویداد کلیک دارن و از طریق اون میشه تعداد کلیکها رو ذخیره کرد. ولی من نتونستم توی DataGrid همچین رویدادی پیدا کنم.
از آقای نصیری درخواست راهنمایی بیشتر داریم.

Vahid_Nasiri
چهارشنبه 05 شهریور 1382, 15:15 عصر
شما باید یک ستون سفارشی (custom) در دیتا گرید اضافه کنید. در اینجا می توان یک ستون هایپر لینک اضافه کرد. :wink:
روی دیتاگرید کلیک راست کنید و سازنده ی خواص آنرا صدا بزنید...

Abbas Arizi
چهارشنبه 05 شهریور 1382, 16:51 عصر
مشکل من ساخت ستون هایپرلینک نیست. مشکل اینه که چه جوری رویداد کلیک رو روی اون ستون کنترل کنم؟
با تشکر.

Vahid_Nasiri
چهارشنبه 05 شهریور 1382, 21:15 عصر
شما به برگه ی خواص مربوط به دیتا گرید مراجعه کنید. روی علامتی شبیه به رعد و برق کلیک کنید تا لیست رخدادهای منتسب به دیتاگرید نمایش داده شود. بر روی رخداد ItemCommand کلیک کنید تا روال رخداد آن به صورت خودکار اضافه شود. هر بار که روی آن کلیک شود این رخداد فراخوانی می گردد.
برای فهمیدن نوع ستون کلیک شده و دقیقا سلول کلیک شده می توان از چیزی شبیه به :


e.Item.Cells&#91;1&#93;.Text.Trim&#40;&#41;
استفاده کرد

Abbas Arizi
چهارشنبه 05 شهریور 1382, 23:08 عصر
ظاهرا این هم از اون مشکلات مخصوص منه.
چون DataGrid من اصلا به این رویداد جواب نمیده. یعنی کدهایی که من توی رویداد ItemCommand نوشتم اصلا اجرا نمیشه. :oops:

Vahid_Nasiri
پنج شنبه 06 شهریور 1382, 00:58 صبح
دلیلش کمی واضح است! اینجا با وی بی فرق می کنه! در وی بی همه ی کار در پس پرده انجام می شود. یعنی اگر حتی شما یک روال رخداد را از یک جای دیگر کپی کنید باز هم کار می کند. اما اینجا اینطور نیست. شما باید به این صورت روال رخداد را به صورت دستی اضافه کنید:


private void InitializeComponent&#40;&#41;
&#123;
this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHand ler&#40;this.DataGrid1_ItemCommand&#41;;
this.Load += new System.EventHandler&#40;this.Page_Load&#41;;

&#125;

البته اگر از محیط ویژوال استفاده کرده باشید این کار به صورت خودکار انجام شده ولی گاهی از اوقات خودبخود پاک می شود!!

Abbas Arizi
پنج شنبه 06 شهریور 1382, 01:28 صبح
اتفاقا من این رو هم کنترل کردم ولی باز هم اشکال باقی هست. یعنی امکان اینکه یه جای دیگه کار اشکال داشته باشه نیست. مثلا یک Property رو درست تنظیم نکرده باشم و ...