|
|
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Есть ли решение такой задачи: есть UserControl (внутри DropDownList, заполняется на сервере) с клиентскими функциями, например uc_SetControlWidth(value) - задает ширину списка. А если этих контрола два на странице, то функция обращается каждая к своему списку, НО вот самих функций ДВЕ, а мне ширину надо разную выставить. И дело не в ширине как таковой, а в принципе. Или в этом случае его необходимо переопределять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 16:07:27 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Так а что конкретно Вы хотите? - чтобы функция осталась одна или - чтобы их имена стали разными ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 16:59:32 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Паганель, Ну наверно, чтобы их имена стали разными. Может быть эти скриптовые функции надо как-то по особому регистрировать. Ну должны же быть какие-то стандартные решения или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:03:59 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
1. Плохо Код: c# 1. 2. 3. 2. Хорошо: вынос функции в отдельный *.js файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:30:36 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:30:40 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
МСУ, Интересно, как должен помочь вынос в отдельный .js файл, название функции ведь все-равно остается тем же, а вот внутри функции перестает работать element.ClientID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 18:35:38 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
а вот за MyFunction_<%= this.ID %> СПАСИБО!! хотя бы работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 18:37:25 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
masha2внутри функции перестает работать element.ClientID.передайте его в функцию еще одним параметром, делов-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 18:44:55 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Паганель, Я эту функцию вызываю из скрипта страницы Page, предполагается, что она не знает о внутренних элементах юзер контрола - ну что-то типа инкапсуляции, а скриптовая функция - это вроде интерфейса для внешнего доступа. Да и вообще, перенеся я эту функцию в отдельный js файл, он же подключится в одном экземпляре, как тогда мне вызывать эту функцию по отношению к конкретному контролу? Вроде как только это _<%= this.ID %> спасает. Или я в принципе все делаю не так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 18:57:21 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
masha2он же подключится в одном экземпляре, как тогда мне вызывать эту функцию по отношению к конкретному контролуПаганельпередайте element.ClientID в функцию еще одним параметром, делов-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 19:01:20 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
masha2МСУ, Интересно, как должен помочь вынос в отдельный .js файл Самым непосредственным образом. masha2название функции ведь все-равно остается тем же, а вот внутри функции перестает работать element.ClientID. Передавать element в аргументах функции запрещает религия? masha2а вот за MyFunction_<%= this.ID %> СПАСИБО!! хотя бы работает. 1. 10 контролов на странице - 10 функций? А если функция / функции очень большая / большие. Да помножить на кол-во контролов на странице. Счастье? 2. А теперь попробуйте данный подход использовать в айтем-темплейтовых контролах (репитере, гриде и иже). Счастье? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 20:31:19 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Паганель, А, Вы имеете ввиду, что в функцию контрола передаем ClientID сонтрола, а внутри функции (чтобы установить ширину у списка) пишем ClientID+'_ListID' - так наверно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 20:42:08 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
МСУ, Да да да, я все поняла, все получилось! Спасибо БОЛЬШОЕ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 20:56:39 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Здравствуйте!не могли бы рассказать как вы разобрались с етой проблеймой? создал User Control в нем Автокоплит!Когда помещаю на одну страницу контрол один работает корректно,а второй не работает вобще!Помогите разобраться с проблемой. Спасибо откликнувшимся. Серверная часть: public partial class AutocompleteWbUsControl : UserControl, ICallbackEventHandler { private List<string> list2 = new List<string>(); private List<string> list; protected void Page_Load(object sender, EventArgs e) { String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context"); String callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + ";}"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true); list2.Add("Валя"); list2.Add("Вуся"); list2.Add("Юля"); list2.Add("Клава"); list2.Add("Вера"); list2.Add("Ксения"); list2.Add("Настя"); list2.Add("Наташа"); list2.Add("Лена"); list2.Add("Люда"); list2.Add("Варя"); list2.Add("Воля"); list2.Add("Вика"); list2.Add("Воровка"); list2.Add("Вязьма"); } protected string str; public void RaiseCallbackEvent(string eventArgument) { str = eventArgument; } public string GetCallbackResult() { if (!string.IsNullOrEmpty(str)) { list = (from p in list2 where p.ToUpper().StartsWith(str.ToUpper()) select p).ToList(); list.Sort(); } string result = ""; if (list != null) { //result = list.Aggregate(str, (current, l) => current + (l + " ")); foreach (var l in list) { result += l + " "; } } return result; } } } Клиенская: <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AutocompleteWbUsControl.ascx.cs" ClientIDMode="Predictable" Inherits="WebApplication1.AutocompleteWbUsControl" %> <div style="margin: 0 auto; text-align: center; background-color: cadetblue; width: 300px;height: 300px"> <h3> АВТОКОМПЛИТ</h3> <input id="Text1" type="text" onkeyup="LookUpStock()" style="width: 150px;" /> <br /> <select id="SelectResult" name="D1" multiple="multiple" size="0" onchange="changeOptionSelElem()" style="width: 150px; visibility: hidden;"> </select> <br /> </div> <script type="text/javascript"> var selectResult = document.getElementById('SelectResult'); function ReceiveServerData(rValue) { if (!rValue.length) { return; } var rows = rValue.split(" "); selectResult.options.length = 0; selectResult.style.visibility = "visible"; var i; for (i = 0; i < rows.length - 1; ++i) { selectResult.options[i] = new Option(rows[i], i); } selectResult.size = i; } function LookUpStock() { CallServer(document.getElementById('Text1').value, ""); } function changeOptionSelElem() { document.getElementById('Text1').value = selectResult.options[selectResult.selectedIndex].text; selectResult.style.visibility = "hidden"; } </script> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 17:00:14 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
код оформи не видно нифига ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 19:03:10 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2012, 10:30:51 |
|
||
|
Два UserControl-а и Javascript-функции
|
|||
|---|---|---|---|
|
#18+
onkeyup="LookUpStock()" замени на onkeyup="LookUpStock(this)" onchange="changeOptionSelElem()" замени на onchange="changeOptionSelElem(this)" так сможешь избавиться от getElementById и вынести свой JS-код в отдельный *.js файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2012, 11:30:01 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37624012&tid=1360042]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 542ms |

| 0 / 0 |
