PDA

View Full Version : سوال: چطوری صفحه updatepanel رو آپدیت کنیم؟



mahdisky
پنج شنبه 08 فروردین 1392, 01:42 صبح
سلام
یه صفحه آپدیت پنل ajax دارم که داخلش دکمه هست وقتی روی دکمه میزنم یه ردیف از جدولم رو پاک میکنه اما ردیف هست تا وقتی که صفحه آپدیت پنل ajax دوباره رفرش بشه.
حالا چطوری وقتی که روی دکمه زدم همون موقع صفحه ajax رفرش بشه که ردیفه هم همون موقع ناپدید شه؟
(نکته : توی صفحه pageload ، جدول رو از sql می خونه )

meisam12
پنج شنبه 08 فروردین 1392, 12:49 عصر
سلام
شما می توانید از جاوا اسکریپت استفاده کنید مثلاً یک gridview داریم که حاوی اطلاعات پرسنل می باشد و یک دکمه حذف دارد که هنگام کلیک دکمه، هم باید ردیف حذف شود و هم gridview بدون postback رفرش شود شما می توانید به عملیاتتان را انجام دهید.برای اطلاعات بیشتر به این http://forums.asp.net/t/1299021.aspx لینک مراجعه کنید.

mahdisky
پنج شنبه 08 فروردین 1392, 15:09 عصر
ممنون
این کد رو نگاه کردم و با javascript همه کارا رو انجام میده اما من جدولم رو توی asp #C با table دینامیک خودم درست کردم .
حالا اگه یه راه باشه که من همون صفحه updatepanel ajax رو دوبار رفرش کنم وقتی که روی دکمه زده شد؟

mahdisky
پنج شنبه 08 فروردین 1392, 22:14 عصر
کسی نمیدونه چطوری اپدیت یا رفرش کنم؟

behrozi.ir
پنج شنبه 08 فروردین 1392, 22:28 عصر
سلام
گرید ویو و باتن را جفتشون را داخل یک آپدیت پنل بنداز
احتمالا درست بشه

behrozi.ir
پنج شنبه 08 فروردین 1392, 22:32 عصر
در ضمن در کد کلیک باتن ، یک بار دیگر datasource را مشخص کن و در آخر databind را انجام بده که آپدیت صورت بگیره و فیلد حذف شده از دیتابیس از گرید هم حذف بشه

mahdisky
پنج شنبه 08 فروردین 1392, 22:49 عصر
در ضمن در کد کلیک باتن ، یک بار دیگر datasource را مشخص کن و در آخر databind را انجام بده که آپدیت صورت بگیره و فیلد حذف شده از دیتابیس از گرید هم حذف بشه

من اصلا از گریدویو استفاده نکردم لطفا سوالم رو با دقت بخونید.
لطفا با مثال بگین؟

behrozi.ir
جمعه 09 فروردین 1392, 00:44 صبح
کدهای داخل پیج لود را بزار داخل این شرطی که گذاشتم
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
کدهای داخل پیج لود
}
}
اینم کد باتن
protected void Button1_Click(object sender, EventArgs e)
{
کدهای حذف رکورد
+
کدهایی که تو پیج لود بودن
البته با یکم دقت ، شاید یه کوچولو ویرایش بخواد

}

کاشکی کد خودتون را ضمیمه میکردین

mahdisky
جمعه 09 فروردین 1392, 01:06 صبح
کدهای داخل پیج لود را بزار داخل این شرطی که گذاشتم
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
کدهای داخل پیج لود
}
}
اینم کد باتن
protected void Button1_Click(object sender, EventArgs e)
{
کدهای حذف رکورد
+
کدهایی که تو پیج لود بودن
البته با یکم دقت ، شاید یه کوچولو ویرایش بخواد

}

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

Alfred188
جمعه 09 فروردین 1392, 10:35 صبح
کدهای داخل پیج لود را بزار داخل این شرطی که گذاشتم
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
کدهای داخل پیج لود
}
}
اینم کد باتن
protected void Button1_Click(object sender, EventArgs e)
{
کدهای حذف رکورد
+
کدهایی که تو پیج لود بودن
البته با یکم دقت ، شاید یه کوچولو ویرایش بخواد

}

کاشکی کد خودتون را ضمیمه میکردین

درود، همین کاری که دوستمون گفتن رو انجام بدین، برای اینکه دوباره کد ننویسین می تونید کدهاتون رو تو یه فانکشن جدا قرار بدید و بعد فراخوانی کنیدشون

mahdisky
جمعه 09 فروردین 1392, 14:15 عصر
درود، همین کاری که دوستمون گفتن رو انجام بدین، برای اینکه دوباره کد ننویسین می تونید کدهاتون رو تو یه فانکشن جدا قرار بدید و بعد فراخوانی کنیدشون

آقا شما مثل اینکه متوجه نمیشین من چی میگم.
می گم فقط می خوام صفحه آجکس رفرش بشه که دستورهای pagload دوباره نیاز نباشه که اجرا بشه
که سریعتر انجام بشه.
لطفا اگه کسی میدونه جواب بده؟؟

Alfred188
جمعه 09 فروردین 1392, 18:48 عصر
آقا شما مثل اینکه متوجه نمیشین من چی میگم.
می گم فقط می خوام صفحه آجکس رفرش بشه که دستورهای pagload دوباره نیاز نباشه که اجرا بشه
که سریعتر انجام بشه.
لطفا اگه کسی میدونه جواب بده؟؟

جیگر طلا خوب حتما نمیشه که داریم اینو می گیم!
من خودم کلی مشکل با این حرکت داشتم که به این شیوه حلش کردم!
آخه شما وقتی روی یه دکمه کلیک می کنید عملیات postback انجام می شه و کدهای تو pageload هم اجرا می شن با این تفاوت که قسمت آپدیت پنل ظاهرش رفرش میشه
برا همینه که می گیم از شرط if (!IsPostback) استفاده کنید!
حالا شما بگرد راهشو پیدا کردی بزار ما یا حداقل من دعات می کنم

Alfred188
جمعه 09 فروردین 1392, 18:57 عصر
این لینک رو هم چک کنید
https://developer.mozilla.org/en-US/docs/AJAX

چیزی که می خواید به نظر من با آپدیت پنل نمیشه، باید از کدهای جاوااسکریپت استفاده کنید
یه چیزی شبیه این کد:

function deletMsg(varId,vard) {
var xmlhttp;

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("Label5").innerHTML = xmlhttp.responseText;
}
else if (xmlhttp.readyState == 1) {
document.getElementById("Label5").innerHTML = 'Deleting...';
}
}
xmlhttp.open("post", "Ajax.aspx");
xmlhttp.send();
}


موفق باشید

behrozi.ir
جمعه 09 فروردین 1392, 19:53 عصر
آقا شما مثل اینکه متوجه نمیشین من چی میگم.
می گم فقط می خوام صفحه آجکس رفرش بشه که دستورهای pagload دوباره نیاز نباشه که اجرا بشه
که سریعتر انجام بشه.
لطفا اگه کسی میدونه جواب بده؟؟

خوب مگر ما چی گفتیم
فقط همون قسمت تغییر میکنه دیگه
دیگه کل صفحه از اول لود نمیشه فقط قسمتی که میخواهین دویاره لود میشه و درخواست شما هم همین بود چه سرعت داشته باشه و چه نداشته باشه ، لطفا به دوستان هم توهین نکنید:متفکر:
اعضای سایت چه میدونن تو ذهن شما چی میگذره ، اگر میدونستن میرفتن جای برنامه نویس شدن ، دعانویس و جادوگر میشدند و کلی پول میزدن به جیب:افسرده:
آجکس یا آژاکس هم درست نیست، تلفظش ای جکس و نوشتارش هم مثل PHP , MP3 میمونه بنویسید Ajax راحت تر هستید (:متفکر: MP3 = ام پی سه :اشتباه:)

mahdisky
یک شنبه 11 فروردین 1392, 02:37 صبح
خوب مگر ما چی گفتیم
فقط همون قسمت تغییر میکنه دیگه
دیگه کل صفحه از اول لود نمیشه فقط قسمتی که میخواهین دویاره لود میشه و درخواست شما هم همین بود چه سرعت داشته باشه و چه نداشته باشه ، لطفا به دوستان هم توهین نکنید:متفکر:
اعضای سایت چه میدونن تو ذهن شما چی میگذره ، اگر میدونستن میرفتن جای برنامه نویس شدن ، دعانویس و جادوگر میشدند و کلی پول میزدن به جیب:افسرده:
آجکس یا آژاکس هم درست نیست، تلفظش ای جکس و نوشتارش هم مثل PHP , MP3 میمونه بنویسید Ajax راحت تر هستید (:متفکر: MP3 = ام پی سه :اشتباه:)

ممنون ولی هیچی ، چند باری گفتم لطفا سوالم رو درست بخونید توهینی هم نکردم فکر کنم هم چیزی که توی ذهنم بود و هم سوالم رو درست مطرح کردم.
اما درباره سوالم
شما فکر کنید که 2000 تا خط کد توی pageload ام هست حالا بنظر شما من صفحه رو یکبار دیگه رفرش کنم بهتره یا که 2000 تا خط کد رو دوباره بزارم توی دکمه؟؟
ببیند وقتی من روی یه دکمه دیگه بزنم صفحه دوباره رفرش میشه حالا مثلا من بیام بگم که یه دکمه فرضی یه بار دیگه رفرش بشه
فقط یه رفرش دوباره می خوام همین؟؟

Alfred188
یک شنبه 11 فروردین 1392, 12:47 عصر
خوب شما لازم نیست 2000 خط رو دوباره بنویسید!
میتونید یه متود بسازید و کدهاتون رو تو اون قرار بدید و هرجا که نیاز بهش داشتید فراخونیش کنید
مثلا:

void myCommand()
{
//دستورات
}

protected void Page_Load(object sender, EventArgs e)
{
myCommand();
}

protected void Button1_Click(object sender, EventArgs e)
{
myCommand();
}

اینطوری نیازی هم نیست که کل صفحتون رفرش بشه و فقط قسمتی که نیاز دارید تغییر می کنه