PDA

View Full Version : سوال: گرفتن متن لیبلی که با جاوا اسکریپت پر شده بعد از Postback



forodo
پنج شنبه 24 مهر 1393, 18:33 عصر
سلام
من می خوام متن لیبلی که با کدهای جاوا پرشده رو بعد از اینکه صفحه PostBack میشه دریافت کنم.
اصلاً فکر نمی کردم توی این مورد به مشکل بربخورم. ولی بدجوری هنگ کردم.
من چیکار کردم و می خوام بکنم:
1- من متن خصوصیت href تگ aای رو که روش کلیک می کنم رو نیاز دارم.
2- با کد زیر متن href رو می گیریم و داخل یه لیبل می ریزم که همون لحظه بعد از کلیک روی تگ a متن لیبل می شه متن href.
$(document).ready(function () {
$(".AnswerOpenPopUp").click(function () {
var qs = $(this).attr('href');
document.getElementById("Label5").innerHTML = qs;
});
})
3- با کلیک روی تگ a هم لیبل پر می شه و هم پنجره Modalای که با جی کوئری درست شده رو باز می کنم. کد کاملش:
$(document).ready(function () {
$(".AnswerOpenPopUp").click(function () {
$("#BackgroundPopUp").css({ visibility: "visible" });
$("#SelfPopUp").css({ visibility: "visible" });
var qs = $(this).attr('href');
document.getElementById("Label5").innerHTML = qs;
});
$("#ImageButton1").click(function () {
$("#BackgroundPopUp").css({ visibility: "hidden" });
$("#SelfPopUp").css({ visibility: "hidden" });
return false;
});
})
4- داخل پنجره Modal یه لینک باتن دارم که وقتی روش کلیک می کنم قراره اطلاعات داخل بانک ذخیره بشن ولی قبل از اینکار می خواستم تست کنم که آیا واقعاً متن لیبل رو با زدن این دکمه می تونم بدست بیارم یا نه.
5- داخل رویداد کلیک لینک باتن اینجوری نوشتم:
Response.Write(Label5.Text);
مشکلات:
1- وقتی که لینک باتن رو کلیک می کنم به جای متن href که در لیبل بود به من Label که متن پیش فرض لیبل هست رو نشون میده.
2- با WebMethod نشد یا شاید من اشتباه می زنم
3- با Ajaxای که با جی کوئری استفاده می شه نشد یا شاید من اشتباه می زنم
4- خواستم بریزم توی یه متغیر static داخل یک کلاس که مقدارش در هیچ حالتی از بین نره که کلاسهای سی شارپ رو جاوا اسکریپت نمیشناسه
5- خواستم بریزم داخل Session که موقع لود صفحه فراخوانیش کنم ولی نشد یا شاید من اشتباه می زنم
6- داخل UpdatePanel انداختم ولی بازم نشد یا شاید من اشتباه می زنم.
مخلص کلوم:
من متن لیبل یا بهتر بگم متن href تگ aای رو که روش کلیک می کنم چطوری می تونم از مقادیر داخلش ( با split علامت ? و & رو جدا کنم برای ذخیره اونم مقادیر در بانک ) استفاده کنم وقتی که قبل از postback پرشده ولی من بعد از postback یاهاش کار دارم
اگر باز جاییش رو متوجه نشدید بگید تا بیشتر توضیح بدم.
با تشکر

Binazir Gharibi
پنج شنبه 24 مهر 1393, 21:19 عصر
این کد رو از آخر کدت حذف کن درست میشه
return false;

ahmad156
پنج شنبه 24 مهر 1393, 21:38 عصر
دوست عزیز شما یه HiddenField (کنترل ASP) داشته باشین بعد توی کدهای جی کوئری تون اون رو مقدار بدین و بعد میتونین از اون توی Code Behind استفاده کنین.

forodo
جمعه 25 مهر 1393, 00:37 صبح
این کد رو از آخر کدت حذف کن درست میشه
return false;
اونو گذاشتم برای اینکه آدرسی که به href دادم کار نکنه و به اون صفحه نره.


دوست عزیز شما یه HiddenField (کنترل ASP) داشته باشین بعد توی کدهای جی کوئری تون اون رو مقدار بدین و بعد میتونین از اون توی Code Behind استفاده کنین.

درست شد.
اینطوری set می کنم.
$(document).ready(function () {
$(".AnswerOpenPopUp").click(function () {
var qs = $(this).attr('href');
var x = document.getElementById('<%= HiddenField1.ClientID%>');
x.value = qs;
return false;
});
})
اینطوری هم فراخوانیش می کنم.
protected void LinkButton4_Click(object sender, EventArgs e)
{
string[] hf = HiddenField1.Value.ToString().Split('?');
}