ورود

View Full Version : سوال: پیجینگ و سورتینگ با ایجکس



soroush_216
یک شنبه 12 آبان 1392, 07:14 صبح
با سلام خدمت همه دوستان

عرض کنم خدمتتون که من یک صفحه دارم که تو این صفحه 4 عمل اصلیه دیتابیس یعنی (select,insert,update,delete) رو دارم بصورت ایجکس انجام میدم و تنها مشکلی که دارم اینه که وقتی یک ارسال پست به سمت سرور انجام میدم لینکهای پیجینگ و سورتینگ وب گرید عوض میشه و اولش کنترلر و اکشنی که قبلش صدا زده شده اضافه میشه!!!
چه کاری باید انجام بدم که همچین اتفاقی نیافته؟ممنون میشم کمکم کنید :)

hakim22
یک شنبه 12 آبان 1392, 07:41 صبح
آدرس دهی Ajax رو به چه شکلی انجام داده اید !؟ معمولا اگر فقط اسم اکشن رو بدون اسلش بنویسید درست عمل میکنه اما راه بهتر اینه که از url.action@ برای پیدا کردن آدرس یک اکشن استفاده کنید.
مشکل این است که کدهای جاوااسکریپت رو نمیشه با کدهای #C قاطی کرد مگر اینکه اسکریپت درون VIEW قرار داشته باشه و در این حالت هم قرار دادن دستورات Razor (سمت سرور)درون جاوا اسکریپت (سمت کلاینت)یک روش خوب در برنامه نویسی وب نیست.
روش معمول اینه که اطلاعات مربوط به آدرس ها رو درون تگ های HTML با استفاده از -data جاسازی کنید. مثلا اگر برای فراخوانی سورتینگ روی یک Button کلیک میشود به صورت زیر عمل کنید


<button data-url='@Url.Action("MyAction","MyController")'> Sort </button>


بعد با استفاده از jQuery و دستور attr شما میتوانید مقادیر درون data-url را بخوانید.
شما میتوانید مقادیر data-attribute رو درون یک تگ div یا span که با css پنهان شده قرار بدید. دقت کنید که در HTML عبارتهایی که با -data شروع میشوند توسط مرورگر خوانده نمیشوند و مشکلی در کدهای HTML بوجود نمی آورند. تنها راه دسترسی به آنها با استفاده از جاوااسکریپت است.

soroush_216
یک شنبه 12 آبان 1392, 14:00 عصر
ممنونم از جوابی که دادین.

باید عرض کنم که من تو وب گرید 2تا Ajax.ActionLink دارم که برای update , delete ازشون استفاده میکنم و آدرس دهی رو هم فقط نام اکشن نوشتم ، به جز اینها من با یک input از نوع submit هم درخواست به سمت سرور ارسال میکنم هم مشکل همچنان پابرجاست، این رو هم عرض کنم که من از پیجینگ و سورتینگ خود web grid دارم استفاده میکنم.