PDA

View Full Version : جایگزین dopostBack ؟



dr_csharp
دوشنبه 24 دی 1386, 10:20 صبح
سلام
دوستان من میخوام یکسری از مقادیر رو بدون postback شدن صفحه از سرور دریافت کنم..قبلا اینکار با doPostBack انجام میشد الان ( منظورم در ASP.NET2 یا 3.5) ظاهرا تغییر کرده ! ممنون میشم راهنمایی کنید !

dr_csharp
دوشنبه 24 دی 1386, 10:31 صبح
با جستجویی که انجام دادم نتیجه این شد ولی عمل نمیکنه !!



protectedstring strReturn = null;
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!Request.Browser.SupportsCallback)
thrownewApplicationException("This browser doesn’t support Client callbacks.");
string result = ClientScript.GetCallbackEventReference(this, null, "RecieveDataFromServer", "validateF");
if (!ClientScript.IsClientScriptBlockRegistered("DoServerAction"))
{
string serverScript = @" function DoServerAction(validateF) { " + result + "}";
ClientScript.RegisterClientScriptBlock(this.GetTyp e(), "DoServerAction", serverScript, true);
}
}
publicstring GetCallbackResult()
{
DateTime dt = DateTime.Now;
return dt.ToShortDateString();
}
publicvoid RaiseCallbackEvent(string eventArgument)
{
if (!string.IsNullOrEmpty(eventArgument))
strReturn = eventArgument;

}


اینهم کد صفحه :



<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>Untitled Page</title>
<scriptlanguage="javascript">
function GetID()
{
var valueID = document.getElementById("lbl").innerHTML;
DoServerAction(valueID);
}

function RecieveDataFromServer(strData)
{
document.getElementById("lbl").innerHTML = strData;
}
</script>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:LabelID="lbl"runat="server"Text="Label"></asp:Label>
<br/>
<inputonclick="GetID()"type="button"value="DoIT"/>
</div>
<divid="myDiv"runat="server">
</div>
</form>
</body>
</html>



ممنون میشم راهنمایی کنید مشکل چیه ؟؟

dr_csharp
دوشنبه 24 دی 1386, 10:35 صبح
دوستان این کد ok هست ولی تو FireFox جواب نمیده !!
من مشکلم با فایرفاکس هست :ناراحت:

hosseinab
سه شنبه 25 دی 1386, 09:48 صبح
innerHTML توی فایر فاکس کار نمی کنه از TextContent توی فایر فاکس استفاده کن

dr_csharp
سه شنبه 25 دی 1386, 11:31 صبح
innerHTML توی فایر فاکس کار نمی کنه از TextContent توی فایر فاکس استفاده کن
دوست عزیز تست کردم ولی TextContent هم کار نمیکنه !!

hosseinab
چهارشنبه 26 دی 1386, 09:49 صبح
if (document.getElementById("lbl").textContent)
document.getElementById("lbl").textContent=txt
else
document.getElementById("lbl").innerText=txt

dr_csharp
چهارشنبه 26 دی 1386, 10:47 صبح
تست کردم نشد !؟
میگم شاید مشکل از فایرفاکس منه ..چمیدونم شاید تنظیمات خاصی روش اعمال شده !؟ در هر حال دوستان اگه تونستن یه تست بزنن نتیجه رو اعلام کنن !

masoomehsadrpour
سه شنبه 10 دی 1387, 10:39 صبح
با سلام
من هم از این روش در پروژه ای استفاده کردم که MasterPage هم دارم اما می خوام
علاوه بر ارسال یک تک مقدار به فرم Parent یک Session را به یک سری کنترل مقدار بدهم
اما مقادیر پس از ست شدن از بین می روند و فقط همان تک مقدار بر می گردد لطفا مرا راهنمایی کنید

ym3015
سه شنبه 14 اردیبهشت 1389, 19:59 عصر
سلام
من میخوام آرشیو قیمت ارز را از یه سایت (http://www.iran-tejarat.com/RateArchive/RateArchive.html) بگیرم. ولی توی اون سایت برای اینکه قیمت ارز توی روزهای محتلف را ببینم باید یکی یکی روی دکمه های مربوط یه روزهای محتلف کلیک کنم.
از برنامه نویسی وب چیزی بلد نیستم.
فقط میدونم وقتی روی دکمه های مربوط به روزهای مختلف کلیک میکنم یه تابع یا شاید چیزی شبیه به اون را استفاده میکنه :

href="javascript:__doPostBack('ArzRateGrid$_ctl16$_ctl1' ,'')
سوال من اینه:
میشه شبیه همچین کاری را با کد نویسی توی C#‎ انجام داد؟
یعنی میشه یه کدی بنویسم که هر بار یکی از صفحه ها را باز کنه و فیمت را از توی صفحه در بیاره؟
ببخشین اگه سوالم تکراری یا آماتور بود.
ممنون.

Vahid_moghaddam
چهارشنبه 15 اردیبهشت 1389, 10:48 صبح
شما می تونید از page method ها و ajax web service ها استفاده کنید. لینک های زیر رو ببینید:

http://www.asp.net/ajax/documentation/live/tutorials/ExposingWebServicesToAJAXTutorial.aspx

http://encosia.com/2009/07/21/simplify-calling-asp-net-ajax-services-from-jquery/

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/