PDA

View Full Version : مشکل Ajax با جاوااسکریپت



amirferdowsi
دوشنبه 25 شهریور 1387, 02:29 صبح
سلام
من در یک صفحه از ادیتور tinymce استفاده کردم که با استفاده از اون متن خبر رو ویرایش و بعد در دیتابیس ذخیره می کنم.
حالا بعد از اضافه کردن کنترلهای Ajax به صفحه ( قرار دادن کدها در داخل تگ UpdatePanel ) ، بعد از PostBack شدن صفحه دیگه ادیتور نمایش داده نمی شه و فقط تکست باکس با متن کدهای html در صفحه قرار می گیرد. لازم به ذکر است که قبل از اضافه کردن Ajax به صفحه من هیچ مشکلی در این زمینه نداشتم.
در ضمن من خط اول صفحه رو برای استفاده از ادیتور بشکل زیر تغییر دادم


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="frm_News.aspx.cs" Inherits="frm_News" ValidateRequest="false" %>

ممنون میشم من رو در این زمینه راهنمایی بفرمائید

m.hamidreza
دوشنبه 25 شهریور 1387, 10:27 صبح
لینک اول جواب سوال شماست...
TinyMce + UpdatePanel Solution by Google (http://www.google.com/search?q=tinymce%2BUpdatePanel&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a)

amirferdowsi
دوشنبه 25 شهریور 1387, 15:21 عصر
سلام
دوست عزیز از معرفی لینک مفیدتون ممنونم :تشویق:
اما با اضافه کردن اون کدها هم مشکل من حل نشد :ناراحت: برای همین کدهای نوشته شده را در اینجا قرار دادم .
ممنون میشم من رو در این زمینه راهنمایی بفرمائید.

Default.aspx


<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script src="js/tiny_mce/tiny_mce.js" type="text/javascript"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
skin : "o2k7",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advi mage,advlink,emotions,iespell,inlinepopups,insertd atetime,preview,media,searchreplace,print,contextm enu,paste,directionality,fullscreen,noneditable,vi sualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethr ough,|,justifyleft,justifycenter,justifyright,just ifyfull,styleselect,formatselect,fontselect,fontsi zeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replac e,|,bullist,numlist,|,outdent,indent,blockquote,|, undo,redo,|,link,unlink,anchor,image,cleanup,help, code,|,insertdate,inserttime,preview,|,forecolor,b ackcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,su p,|,charmap,emotions,iespell,media,advhr,|,print,| ,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,st yleprops,|,cite,abbr,acronym,del,ins,attribs,|,vis ualchars,nonbreaking,template,pagebreak",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Example content CSS (should be your site CSS)
content_css : "js/tiny_mce/css/content.css",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
</script>
<script type="text/javascript">
function InitTiny()
{
tinyMCE.execCommand('mceAddControl', false, 'txt_test');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
Please Wait
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="txt_test" runat="server" TextMode="MultiLine" Rows="10" Columns="50" EnableViewState="false"></asp:TextBox>
<asp:Button ID="btn_test" runat="server" Text="test" onclick="btn_test_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>


Default.aspx.cs


using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_test_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(UpdatePane l1, this.GetType(), "init", "InitTiny();", true);
}
}

amirferdowsi
سه شنبه 26 شهریور 1387, 02:13 صبح
کسی از دوستان در این زمینه اطلاعاتی نداره ؟ :ناراحت:

m.hamidreza
سه شنبه 26 شهریور 1387, 10:03 صبح
من با این کنترل کار نکردم که الان بخوام کد شما رو تست کنم، بهترین جایی که میتونه بهت کمک کنه همون گوگله! :چشمک:لینک های مختلف رو ببین یا Keyword جستجو رو چند بار عوض کن حتما جوابشو پیدا میکنی...
موفق باشی.

amirferdowsi
شنبه 30 شهریور 1387, 01:08 صبح
سلام
دوست عزیز مثل اینکه جاوااسکریپت با UpdatePanel مشکل داره ! چون بعد از PostBack شدن صفحه تمامی قسمتهایی که از جاوااسکریپت استفاده شده از کار می افتند و دیگه اجرا نمیشن !
می خواستم بدونم تاحالا کسی بااین مشکلات برخورد نداشته ؟

mahdi_farhani
شنبه 30 شهریور 1387, 08:02 صبح
من هم این مشکل رو داشتنم ، بیخیال آژاکس شدم......
ولی شما میتونی از کامپوننت هایی که با آژاکس کار میکنن استفاده کنی . تو Codeproject یه سرج بکن یکی باید باشه اسمش الان تو ذهنم نیست . در ضمن ادیتور آژاکسی هم فکر کنم باشه ولی پولی به احتمال قویی

Saber_Fatholahi
شنبه 30 شهریور 1387, 09:43 صبح
اما من استفاده کردم همین مشکل داشتم
ولی توی UpdatePanel، یک PostbakTriger برای اون دکمه یا شی که باعثپست بک می شه گذاشتم مشکلم حل شد (یه نوع کلک رشتی فقط جهت راه افتادن کار) اما فکر کنم منطقی نباشه

amirferdowsi
شنبه 30 شهریور 1387, 14:00 عصر
اما من استفاده کردم همین مشکل داشتم
ولی توی UpdatePanel، یک PostbakTriger برای اون دکمه یا شی که باعثپست بک می شه گذاشتم مشکلم حل شد (یه نوع کلک رشتی فقط جهت راه افتادن کار) اما فکر کنم منطقی نباشه

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

amirferdowsi
دوشنبه 01 مهر 1387, 05:26 صبح
مگه میشه این مشکل یک راه حل منطقی نداشته باشه !
یعنی تا بحال کسی به این مشکل برخورد نکرده !؟

amirferdowsi
پنج شنبه 04 مهر 1387, 01:44 صبح
چرا کسی جواب نمیده ؟
یعنی کسی تا حالا با کنترلهای Ajax کار نکرده ؟
اصلاً استفاده از این کنترلها رو توصیه می کنید یا خیر ؟

mahdi_farhani
پنج شنبه 04 مهر 1387, 11:28 صبح
دوست عزیز ، راه منطقیشو دوستان بتون گفتن .
مشکل فقط به خاطر این هست که بعضی از این ادیتور ها از کدهای اسکریپت کمک میگرن و به همین دلیل Updatepanel با اسکریپت مشکل داره .
Winthusiasm.HtmlEditor زیاد با آژاکس مشکل نداره ولی من خوشم نمیاد ازش

amirferdowsi
پنج شنبه 04 مهر 1387, 15:15 عصر
سلام
دوست عزیز از توجه شما ممنونم ، ولی مشکل من فقط با ادیتور نیست دیگر قسمتهای سایت هم که با جاوااسکریپت طراحی شده هم دیگه از کار می افتند .

mahdi_farhani
پنج شنبه 04 مهر 1387, 16:02 عصر
همه قسمت ها از کار نمیوفته ........
بیشتر این مورد زمانی اتفاق میفته که بخواهی از دستور registerClientscript استفاده کنی ، اونم مشکل با Scriptmanger حل میشه .
تمام کامپوننت هایی که یه جورایی با اسکریپت کار میکنن مشکل پیدا مکنی اونم به خاطر نحوه فراخوانیش هست.
مثلاً به غیر از ادیتور دیگه با چی مشکل داری

amirferdowsi
جمعه 05 مهر 1387, 01:24 صبح
مثلاً به غیر از ادیتور دیگه با چی مشکل داری

من در یک صفحه با استفاده از جاوااسکریپت ، چند تب ایجاد کردم که در حالت عادی هیچ مشکلی نداره و به طور کامل اجرا میشه .
اما بعد از اضافه کردن Ajax به پروژه و قراردادن کدهای صفحه داخل تگ UpdatePanel ، در زمان اجرای اول صفحه هیچ مشکلی نیست اما بعد از PostBack شدن صفحه کدهای جاوااسکریپت دیگه اجرا نمیشه

mahdi_farhani
جمعه 05 مهر 1387, 01:34 صبح
فکر میکنم تو Pgaeload برای بار اول اسکریپت ها لود میشه و بعد از Postback چون رفرش صورت نمیگیره دیگه اون کد اجرا نمیشه
حالا شما دستی بعد از پست بعد اونو اجرا کن . اونم با استفاده از Scriptmanager ...

amirferdowsi
جمعه 05 مهر 1387, 13:59 عصر
سلام
دوست عزیز من برای اجرای کدهای جاوااسکریپت از این کد در ابتدای صفحه استفاده می کنم


<script src="JavaScript/TabPane.js" type="text/javascript"></script>

و فکر می کنم بعد از PostBack هم دوباره مرورگر این خط رو بخونه ولی چرا اجرا نمی کنه ، نمیدونم !
اگر هم لطف کنید بیشتر در مورد Scriptmanager توضیح بفرمائید که چه جوری میشه بااستفاده از اون اینگونه مشکلات رو بطرف کرد ، ممنون میشم .
موفق باشید .