Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
a_lex
1

проблема UserControl-ов c элементами JavaScript на aspx странице

12.07.2006, 01:53. Просмотров 1972. Ответов 3
Метки нет (Все метки)

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Здраствуйте, у меня возник следующий вопрос по <SPAN lang=EN-GB style="mso-ansi-language: EN-GB JavaScript</SPAN> :<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.4pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Есть пользовательский элемент управления в <SPAN lang=EN-GB style="mso-ansi-language: EN-GB ASP</SPAN>.<SPAN lang=EN-GB style="mso-ansi-language: EN-GB NET</SPAN>(<SPAN lang=EN-GB style="mso-ansi-language: EN-GB VS</SPAN>2005), который состоит из 4-х ссылок<SPAN style="mso-spacerun: yes </SPAN>и таблицы<o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 83.4pt; TEXT-INDENT: -48pt; mso-list: l0 level1 lfo1; tab-stops: list 83.4pt <FONT face="Times New Roman <SPAN lang=EN-GB style="mso-ansi-language: EN-GB; mso-fareast-font-family: 'Times New Roman' <SPAN style="mso-list: Ignore <FONT color=#000000><FONT size=3>1)<SPAN style="FONT: 7pt 'Times New Roman' </SPAN></SPAN></SPAN><FONT size=3><FONT color=#000000>при нажатии ссылки(например 1) внутри таблицы появляется надпись: выбран элемент 1... цвет ссылки меняется с черного<SPAN style="mso-spacerun: yes </SPAN>на красный. Элемент необходимо реализовать средствами <SPAN lang=EN-GB style="mso-ansi-language: EN-GB JavaScript</SPAN>, поскольку обновление должно происходить без <SPAN lang=EN-GB style="mso-ansi-language: EN-GB PostBack</SPAN>.<SPAN lang=EN-GB style="mso-ansi-language: EN-GB <o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 83.4pt; TEXT-INDENT: -48pt; mso-list: l0 level1 lfo1; tab-stops: list 83.4pt <FONT face="Times New Roman <SPAN style="mso-fareast-font-family: 'Times New Roman' <SPAN style="mso-list: Ignore <FONT color=#000000><FONT size=3>2)<SPAN style="FONT: 7pt 'Times New Roman' </SPAN></SPAN></SPAN><FONT color=#000000 size=3>Этот <SPAN lang=EN-GB style="mso-ansi-language: EN-GB UserControl</SPAN><SPAN lang=EN-GB> </SPAN>расположен на форме, на которой находится кнопка, при нажатии на кнопку я должен получить номер элемента, на который я нажал...или его текст...</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.4pt <FONT face="Times New Roman" color=#000000 size=3>Я реализовал данный пример средствами <SPAN lang=EN-GB style="mso-ansi-language: EN-GB ASP</SPAN>.<SPAN lang=EN-GB style="mso-ansi-language: EN-GB NET</SPAN>(<SPAN lang=EN-GB style="mso-ansi-language: EN-GB C</SPAN>#) но там содержатся серверные компоненты(и хотя я установил <SPAN lang=EN-GB style="mso-ansi-language: EN-GB AutoEventWireup</SPAN>=<SPAN lang=EN-GB style="mso-ansi-language: EN-GB false</SPAN>) то все равно надо <SPAN lang=EN-GB style="mso-ansi-language: EN-GB JavaScript</SPAN>...</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Что я сделал на <SPAN lang=EN-GB style="mso-ansi-language: EN-GB JavaScript</SPAN><o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 53.4pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 53.4pt <FONT face="Times New Roman <SPAN style="mso-fareast-font-family: 'Times New Roman' <SPAN style="mso-list: Ignore <FONT color=#000000> N lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>{<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>if (("a"+i)!=elem)<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>this.document.getElementById("a"+i).style.color="#000000";<SPAN style="mso-spacerun: yes </SPAN><o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>}<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>Res=elem.substring(1);<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>document.getElementById("P1").innerText="Вы выбрали элемент со значением : "+Res;<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>SelectedValue=Res;<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>return Res;<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN style="mso-spacerun: yes </SPAN>}<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman //--><o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman </script><o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT face="Times New Roman" color=#000000 size=3>… </SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman <table id=”tab1”><o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <SPAN lang=EN-GB style="mso-ansi-language: EN-GB <FONT size=3><FONT color=#000000><FONT face="Times New Roman …<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <FONT face="Times New Roman" color=#000000 size=3>здесь линки из пункта 2</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman ...<o></o></P><P class=MsoNormal style="MARGI ="mso-ansi-language: EN-US 2.</SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB ascx</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US " </SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB TagName</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US ="</SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB test</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US 2" </SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB TagPrefix</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US ="</SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB ucl</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US " %> ;<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="mso-ansi-language: EN-US <FONT size=3><FONT color=#000000><FONT face="Times New Roman …<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="mso-ansi-language: EN-US <FONT size=3><FONT color=#000000><FONT face="Times New Roman <ucl:test2 ID="U_1" runat="server"/><o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="mso-ansi-language: EN-US <FONT size=3><FONT color=#000000><FONT face="Times New Roman <ucl:test2 ID="U_2" runat="server"/>,<o></o></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman …<o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman то вне зависимости от того, на каком я кликаю, изменения выполняются только на первом... а надо чтобы изменялся тот, на каком я нажимаю<o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN lang=EN-GB style="mso-ansi-language: EN-GB d</SPAN>)<SPAN style="mso-spacerun: yes </SPAN>мне нужно также при нажатии кнопки на форме забирать значение <SPAN lang=EN-GB style="mso-ansi-language: EN-GB Res</SPAN> из процедуры <SPAN lang=EN-GB style="mso-ansi-language: EN-GB elem</SPAN>_<SPAN lang=EN-GB style="mso-ansi-language: EN-GB clicked</SPAN>(<SPAN lang=EN-GB style="mso-ansi-language: EN-GB this</SPAN>.<SPAN lang=EN-GB style="mso-ansi-language: EN-GB id</SPAN>)<o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <o><FONT face="Times New Roman" color=#000000 size=3> </o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3>на <SPAN lang=EN-GB style="mso-ansi-language: EN-GB ASP</SPAN>.<SPAN lang=EN-GB style="mso-ansi-language: EN-GB NET</SPAN> (<SPAN lang=EN-GB style="mso-ansi-language: EN-GB C</SPAN>#) аналогично реализованный контрол работает «без боков», по всем 4 пунктам...вот собственно и все. Господа, может кто откликнется и будет в состоянии помочь мне по перечисленным вопросам, буду вам очень признателен.</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Спасибо за внимание, жду ваших идей и предложений. <o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <o><FONT face="Times New Roman" color=#000000 size=3> </o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt; TEXT-INDENT: 12pt <o><FONT face="Times New Roman" color=#000000 size=3> </o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN style="mso-spacerun: yes <FONT face="Times New Roman" color=#000000 size=3> </SPAN><o></o>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2006, 01:53
Ответы с готовыми решениями:

Как сделать доступ к PHP странице после логина на aspx странице?
Как сделать доступ к PHP странице после логина на aspx странице? Сделал система аутентификации и...

Отсутствует __VIEWSTATE на странице aspx
Как добиться такого эффекта? На этом сайте отсутствует viewstate в коде...

Как прочитать title на aspx странице?
Более объемно вопрос - есть aspx страница http://www.nasdaq.com/screening/industries.aspx , которая...

Создать контролы в цикле на aspx странице
Привет всем! Есть html таблица, в каждой ячейки которой содержится один текстовый инпут...

UTF-8 и Кириллица (Windows) на ASPX странице
Привет честной народ! Подскажите так или может ссылку на FAQ какой-нибудь... В SQL-сервере 2000 от...

3
a_lex
12.07.2006, 21:13 2
значит проблему с 2-мя контролами вроде можно решить, если на линки написать runat="server" тогда как передаваемый параметр пойдет имя контрола_id линка...но тогда ругается функция elem_clicked(this.id)
я переделал ее и пытаюсь выцепить this.document.getelementbyID(Id линка)...может кто подскажет
Vizlim
3 / 3 / 5
Регистрация: 24.10.2011
Сообщений: 269
13.07.2006, 16:40 3
a_lex (11.07.2006)
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 35.4pt; TEXT-INDENT: 12pt <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o><FONT face="Times New Roman" color=#000000 size=3> </o><FONT size=3><FONT color=#000000><FONT face="Times New Roman что мне надо: <o></o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN lang=EN-GB style="mso-ansi-language: EN-GB a</SPAN>)<SPAN style="mso-spacerun: yes </SPAN>в самом начале, пока <<SPAN lang=EN-GB style="mso-ansi-language: EN-GB p</SPAN>> пустой, ячейка только серая, без обрамления, а мне обрамление нужно сразу</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face=Verdana color=#1f5080 size=2>
</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3>Вот обрамление сразу:</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3><td colspan="4" width="200" id="td4" style="height: 30px; text-align: center; border-color:Black; border-style:solid; background-color:#CFD0D0" ></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3> <p id="P1" style="border-color:Black; border-style:solid;height: 30px </p></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3> </P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt
a_lex (11.07.2006)
</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN lang=EN-GB style="mso-ansi-language: EN-GB b</SPAN>)<SPAN style="mso-spacerun: yes </SPAN>когда я делаю обновление страницы, то надпись внутри ячейки исчезает, а мне ее надо сохранять, также надо сохранять и выбранный линк</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt
</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt </P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Можешь формировать переходы по ссылке таким образом</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <a href="#1" onclick="elem_clicked(this.id)" id="a1" tabindex="1" >1</a>
<a href="#2" onclick="elem_clicked(this.id)" id="a2" tabindex="1" >2</a></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3>и при запуске скрипта после тега </table></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3>Добавь:</P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <script>
elem_clicked("a2"); //При запуске сразу напишет о 2 элементе
</script></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <o></o> </P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <o>[quote]a_lex (11.07.2006)
</o></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman <SPAN lang=EN-GB style="mso-ansi-language: EN-GB d</SPAN>)<SPAN style="mso-spacerun: yes </SPAN>мне нужно также при нажатии кнопки на форме забирать значение <SPAN lang=EN-GB style="mso-ansi-language: EN-GB Res</SPAN> из процедуры <SPAN lang=EN-GB
0
a_lex
14.07.2006, 05:40 4
спасибо большое постараюсь попробовать...
тут пока не было ответов я поменял немного тело функции... UControls_TestTask2.ascx
function elem_clicked<%=ClientID%>(elem)
{
var Res;
SelectedValue = "";
var Element=elem.substring(4);
document.getElementById(elem).style.color="#0000ff";
for (var i=1; i<5; i++)
{
if (("a"+i)!=Element)
document.getElementById("<%=ClientID%>_a"+i).style.color="#000000";
}
Res=Element.substring(1);
document.getElementById("<%=ClientID%>_P1").innerText="Вы выбрали элемент со значением : "+Res;
document.getElementById("<%=ClientID%>_L1").style.color="#000000";
document.getElementById("<%=ClientID%>_L1").innerText="Вы выбрали элемент со значением : "+Res;
document.getElementById("<%=ClientID%>_hResult").Value=Res;
alert("Значение Res :"+Res+" значение hResult : "+document.getElementById("<%=ClientID%>_hResult").Value);
return Res;
}

что получилось...поскольку у меня 2 контрола(минимум) и в соответствии с пунктом С...тогда я получаю 2 обновления, но вылезла другая проблема...значение для Label и P вносятся через InnerText... вот строка из функции
document.getElementById("<%=ClientID%>_hResult").Value=Res;
alert("Значение Res :"+Res+" значение hResult : "+document.getElementById("<%=ClientID%>_hResult").Value);
выдает в Алерте что все ок...а само поле не изменяется...(даже когда я делаю его не скрытым а текстом) а когда я обращаюсь к компоненту из Формы...
UControls_TestTask2.ascx.cs
public partial class Ucontrols_TestTask2 : System.Web.UI.UserControl
{
private static string ClientID;
public string IntResult
{
get {
return hResult.Value.ToString();
}
}
public void ControlInit(string clientID)
{
ClientID = clientID;
a1.Attributes.Add("onclick", "elem_clicked" + clientID + "(this.id)");
a2.Attributes.Add("onclick", "elem_clicked" + clientID + "(this.id)");
a3.Attributes.Add("onclick", "elem_clicked" + clientID + "(this.id)");
a4.Attributes.Add("onclick", "elem_clicked" + clientID + "(this.id)");
}
}
так вот у меня на странице Default2.aspx есть кнопка, при нажатии на которую я получаю, что
protected void Button1_Click(object sender, EventArgs e)
{
String val1;
String val2;
if (this.FindControl("U_1")!=null)
val1=(this.U_1.IntResult);
&nbs
14.07.2006, 05:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2006, 05:40

После redirect данные на странице dg.aspx не обновляются
Есть такая связка: - страница dg.aspx (на ней размещен DataGrid на основе инфы из базы) -...

Возможно ли разместить PHP Script на странице .aspx?
Доброго времени суток. Есть веб проект asp.net и появилась надобность разместить PHP script на...

Не могу в aspx странице получить данные из класса C#
Добрый день! Я человек в asp.net совсем начинающий, объясните. пожалуйста, что я делаю не так?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru