PDA

View Full Version : فرستادن مقدار از jquery به codebehind



NewLife2008
جمعه 23 دی 1390, 10:33 صبح
سلام
چطور میشه مقداری که در سمت code توسط jquery بدست اومده رو به code behind فرستاد؟
من یک dropdownlist با jquery ایجاد کردم . الان میخوام وقتی آیتمی از این dropdownlist تغییر کرد(که این مقدار در jquery بدست اومده)اون رو به code behind بفرستم.ممنون میشم راهکاراتونو اعلام کنید.

raziee
شنبه 24 دی 1390, 01:26 صبح
سلام
چطور میشه مقداری که در سمت code توسط jquery بدست اومده رو به code behind فرستاد؟
من یک dropdownlist با jquery ایجاد کردم . الان میخوام وقتی آیتمی از این dropdownlist تغییر کرد(که این مقدار در jquery بدست اومده)اون رو به code behind بفرستم.ممنون میشم راهکاراتونو اعلام کنید.
با سلام.
باید بوسیله AJAX این کار رو انجام بدید.
<script>
$(function () {
$("#mydropdownlist").change(function () {
var data = { myvalue: $(this).val() }
$.post("url", data, function (backdata, status) {
// callback, do something
}, "json");
});
});
</script>

NewLife2008
شنبه 24 دی 1390, 23:20 عصر
ممنون از جوابتون.
راستش من اطلاعات زیادی راجع به ajax ندارم. و توی این قطعه کد نمیدونم داره چکار میکنه!
و یه چیز دیگه :چگونه در code behind ازش استفاده کنم؟

moferferi
دوشنبه 26 دی 1390, 11:50 صبح
سلام.همون طور که قول داده بودم جواب را گذاشتم

برای دست یابی به مقادیر یک dropdownlistتوسط جی کوئری به اینصورت عمل کنید
خوب شما توی تایپیکتون گفتین پر کردن dropdownlist با جی کوئری انجام دادین پس یعنی یه چیزایی راجب به اجاکس و جی کوئری بلد هستین.البته بعید میدونم پر کردن dropdownlist به وسیله روش json انجام داده باشین
ولی بر فرض یه dropdownlist با تعادی مقدار داریم
ابتدا به dropdownlist خودتون یه کلاس نسبت بدین.من mydrop گذاشتم

سپس یه فایل جاوا اسکریپت ایجاد کنید و کد های زیر را داخل قرار بدین
$(document).ready(function () {
GetItemSelect();
GetItemSelect2();
});
function GetItemSelect() {

$(".mydrop").change(function () {
id = $(".mydrop option:selected").text();
alert(id);
});
}
function GetItemSelect2() {

$("#btn2").click(function () {
id2 = $(".mydrop option:selected").text();
alert(id2);
})
}
متد GetItemSelect باعث میشه هر وقت مقدار انتخابی drop شما تغییر کرد اون را توی یک متغیر به نام id بریزه و سپس به وسیله دستور alert رو صفحه چاپ بشه.
متد2 GetItemSelect به رویداد onclick دکمه نسبت دادم که هر وقت کلیک شد مثل بالا مقدار انتخابی را نشون بده
onclick="GetItemSelect2();"
-----------------
خوب حالا بر فرض میخواهیم که مقدار انتخابی را از دیتابیس حذف کنیم
ابتدا یه صفحه ایجاد میکنیم و اسمشا میزاریم بر فرض AllCommands.aspx
در رویداد پیج لود این کد ها را میزاریم
protected void Page_Load(object sender, EventArgs e)
{
string s = Request["cmd"];
switch (s)
{
case "catdelete": catdelete(); Response.End(); break;
case "catadd": catdelete(); Response.End(); break;

default:
break;
}
}
در اینجا اگه مقدار request دریافتی برابر catdelete باشه متد catdelete و اگه برابر catdadd باشه متد catdadd h[vh ldai
من متدی برای حذف کالا از دیتابیش ایجاد میکنم
private void catdelete()
{
MylinqDataContext dc = new MylinqDataContext();
Category cat = (from c in dc.Categories
where c.ID == Int32.Parse(Request["id"])
select c).FirstOrDefault();
dc.Categories.DeleteOnSubmit(cat);
dc.SubmitChanges();
}
حالا نوبت ایجاد فایل جی جاوا خودمونه.باید دو تا مقدار به صفحه allcomands بفرستیم.
اولی مقدار catdelete برای اینکه متد catdelete اجرا بشه
و دومی مقدار id که میخواهیم از دیتابیس حذف کنیم
به اینصورت عمل میکنیم.
function DeleteCategory() {
id = $(".mydrop option:selected").text();
$.ajax({
url: "AllCommands.aspx?cmd=catdelete&id=" + id, async: true,
cache: false,
error: function (data) {
},
success: function (data) {
alert("رکورد انتخابی شما حذف شد");
}
});
}
در بالا فانکشنی ایجاد کردیم به اسم DeleteCategory
سپس مقدار اتخابی را درون متغیر id میریزیم
و بعد اون را به صفحه allcomands میفرستیم.
در صورت موفق بودن این عمل قسمت
success: function (data) {
alert("رکورد انتخابی شما حذف شد");
}
اجرا میشه.که من توی اون یه پیغام گذاشتم.شما میتونید هر متد و فانکشنی که خواستین توی این قسمت وارد کنید.
--------------------------------
امیدوارم تونسته باشم جوابتون را داده باشم.
ولی بهتون پیشنهاد میکنم اگه هنوز اشنایی کاملی با اجاکس ندارین از ابتدا شروع به یادگیری جی کوئری و به ویژه روش json کنید.و سپس توی پروژه هاتون از اجاکس استفاده کنید
سایت http://w3schools.com/ و http://jquery.com/ مرجع خوبی برای یادگیری هست.
موفق باشید

raziee
دوشنبه 26 دی 1390, 13:07 عصر
@moferferi:
استفاده از Page زیاد مناسب نیست. از Handler ها برای این منظور استفاده کنید.

moferferi
دوشنبه 26 دی 1390, 14:03 عصر
بله شما درست میگین.
ولی ایشون گفتن تازه کار هستن من هم میخواستم ساده بگم