Лучший отвечающий
вызов функции javascript из asp.et

Вопрос
-
Добрый день.у меня есть веб ресурс у компонента с javascript кодом
[assembly: WebResource("HtmlEditorB.Scripts.client.js", "text/javascript")]
public IEnumerable<ScriptDescriptor> GetScriptDescriptors() { ScriptControlDescriptor descriptor = new ScriptControlDescriptor("HtmlEditorB.EditorControl", this.ClientID); descriptor.AddProperty("message", this.iframe.ClientID); descriptor.AddProperty("inptID", this.inpt.ClientID); descriptor.AddProperty("colrID",this.colr.ClientID); return new ScriptDescriptor[] { descriptor }; } public IEnumerable<ScriptReference> GetScriptReferences() { ScriptReference a = new ScriptReference("HtmlEditorB.Scripts.EditorControl.js", "HtmlEditorB"); ScriptReference b = new ScriptReference("HtmlEditorB.Scripts.jquery.colorPicker.js", "HtmlEditorB"); ScriptReference c = new ScriptReference("HtmlEditorB.Scripts.jquery-1.2.6.js", "HtmlEditorB"); ScriptReference d = new ScriptReference("HtmlEditorB.Scripts.client.js", "HtmlEditorB"); return new ScriptReference[] { c,d,a, b }; }
в этом скрипте есть функцияfunction GetText(a) { var iframe_window = window.frames[a]; this._text = iframe_window.document.getElementsByTagName("body")[0].innerHTML; return this._text; }
у моего компонента есть сво-воpublic string GetText() { return string r; }
как мне вызвать из этого свойства данную javascript функцию находящиюся в данном веб ресурсе.при вызове из кода javascript функции следует передать в качестве входяшего параметра id обьекта, тобиш this.iframe.ClientIDи послетого как javascript функция выполнелась , она возврошает текст. и этот текст нужно получить на сервере и передать его свойствуpublic string Text { get; set; }
заранее благодарю6 мая 2011 г. 12:11
Ответы
-
вообщем
я создал скрытое поле
protected HiddenField HiddenField
при отправке информации на сервер скрытаму полю передаю содержимое iframe ,
var iframe_window = window.frames["EditorContro"];
this._text = iframe_window.document.getElementsByTagName("body")[0].innerHTML; if (this._text != "") { HiddenField.value = this._text;
и на сервере соотественно обрабатываю
public string Text { get { return this.HiddenField.Value; } }
- Предложено в качестве ответа PashaPash 13 мая 2011 г. 22:21
- Помечено в качестве ответа Abolmasov DmitryModerator 14 мая 2011 г. 20:40
13 мая 2011 г. 20:51
Все ответы
-
А скажите - какую задачу-то Вы пытаетесь решить?
Думается, мне - есть, возможно, более простые альтернативы.
Расскажите, пожалуйста, поподробней.
Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.6 мая 2011 г. 18:55 -
рассказываю
я пишу компонент html editor так называемый.
я создал библиотеку . в ней описал html модель
все это я описывал через подобный класс
HtmlGenericControl editor = new HtmlGenericControl("div"); editor.ID = "Panel"; editor.Style["position"] = "relative"; editor.Style["border"] = "groove"; editor.Style["height"] = "190px"; editor.Style["width"] = "42%"; editor.Style["background-color"] = "#FFDEAD"; editor.Style["box-shadow"] = "0 0 5px black"; editor.Style["box-shadow"] = "0 0 10px rgba(0,0,0,0.5)"; editor.Style["-moz-box-shadow"] = "0 0 10px rgba(0,0,0,0.5)"; editor.Style["-webkit-box-shadow"] = "0 0 10px rgba(0,0,0,0.5)"; editor.Style["border"] = "1px solid black"; editor.Style["border-radius"] = "5px"; editor.Style["border-radius"] = "5px";
и т.д
потом я описал javascript класс, зарегил нем пространство имен чтобы он в веб ресурсы подключался,непосредственно в нем инициализируется прочие элементы на скрипте и определяются событийные функции. это находиться в файлике
ScriptReference a = new ScriptReference("HtmlEditorB.Scripts.EditorControl.js", "HtmlEditorB") , сами методы и соб. функции находятся в
ScriptReference d = new ScriptReference("HtmlEditorB.Scripts.client.js", "HtmlEditorB")
функция котрая созает палитру,(я ее написал на jquery) находиться
ScriptReference b = new ScriptReference("HtmlEditorB.Scripts.jquery.colorPicker.js", "HtmlEditorB"
и подключаемый файл jqwery
ScriptReference c = new ScriptReference("HtmlEditorB.Scripts.jquery-1.2.6.js", "HtmlEditorB"
и вот на выходе получаем dll, который кидаем на тулбокс и появляется вот такой едитор
теперь осталось реализовать метод который бы возвращает html текст из этого едитора...
я написал javascript функцию которая извлекает текст из едитора, и оставалось как то ее с серверным кодом связать.
думал через view state но пока не совсем разобрался как это делать.
может конечно есть другие варианты получения текста.
такова задача, и так я ее попробовал реализовать, может не совсем правильно.
буду рад предложениям.
6 мая 2011 г. 21:33 -
хотя если и можно то ViewState же нужно будет обуздать, Ведь занимающее от 50% размера страницы состояние представления — это не очень хорошо с точки зрения клиентской оптимизации6 мая 2011 г. 21:38
-
Уважаемый пользователь!
В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме
Для связи [mail]11 мая 2011 г. 3:18Модератор -
я понел что так у меня не поулчиься вызвать данную javascipt функциию,
и сделал следуйшие вешь
HtmlGenericControl iframe;
потом в функции проинециализировал его добавив атрибуты и стиль
protected HtmlGenericControl CreateEditor() {.... iframe = new HtmlGenericControl("iframe"); iframe.ID = "textEd"; iframe.Attributes["runat"] = "server"; iframe.Style["position"] = "absolute"; iframe.Style["border"] = "1px #000033 solid"; iframe.Style["left"] = "5px"; iframe.Style["top"] = "40px"; iframe.Style["height"] = "140px"; iframe.Style["width"] = "97%"; iframe.Style["background-color"] = "White"; iframe.Style["border-radius"] = "5px"; editor.Controls.Add(toolBox); editor.Controls.Add(iframe);
после чего в сво-ве написал так
public string Text { get { return (this.iframe.InnerHtml); } }
но как изображено на скрине не чего не дало
http://s2.ipicture.ru/uploads/20110510/U7iNtCUJ.png
в чем моя ошибка, почему не срабатывает сво-во InnerHtml
javascript только сопутствует редактированию в iframe.
11 мая 2011 г. 14:55 -
вообщем
я создал скрытое поле
protected HiddenField HiddenField
при отправке информации на сервер скрытаму полю передаю содержимое iframe ,
var iframe_window = window.frames["EditorContro"];
this._text = iframe_window.document.getElementsByTagName("body")[0].innerHTML; if (this._text != "") { HiddenField.value = this._text;
и на сервере соотественно обрабатываю
public string Text { get { return this.HiddenField.Value; } }
- Предложено в качестве ответа PashaPash 13 мая 2011 г. 22:21
- Помечено в качестве ответа Abolmasov DmitryModerator 14 мая 2011 г. 20:40
13 мая 2011 г. 20:51