powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
25 сообщений из 38, страница 1 из 2
Как изменить цвет строки в ListBox ?
    #32507961
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как изменить цвет не во всём списке ListBox, а в отдельной строке ListBox4.Items(5) ?

Я и так и сяк пытался - ни фига. Поискал через Yahoo, там есть какая-то дребедень непонятная, но только под Win.

...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32508300
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ASP.NET - никак.

Если в javasctipt нет такой функции, то скорее это сделать не удастся.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32508660
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку конструкция ListBox4.Items[5].Attributes.Add("style","color:red"); не работает, правда я не разбирался почему, то могу предложить использовать жабускрипт, что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 
<script language=javascript>
<! --
 
document.getElementById('<%=ListBox1.ClientID%>')[ 5 ].style.color='red'
// -->
 
</script>
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32508941
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
profil,
я испытал и способ добавления атрибута и второй способ - джаваскрипт. Ошибки нету, браузер не ругается, но и цвет не меняется.
Что скажешь?
Может ты ошибся - надо не color менять, а какой-нибудь forecolor?

...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32508980
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<HTML>
<HEAD>
<TITLE>Title</TITLE>
</HEAD>
<STYLE>
.black {background-color:white; color:black;}
.white {background-color:black; color:white;}
.red {background-color:red; color:white;}
</STYLE>
<BODY>
<FORM NAME="F">
<SELECT name="s">
<OPTION VALUE="0" SELECTED WIDTH="10"> </OPTION>
<OPTION VALUE="1" CLASS="black" WIDTH="10">BlackBlackBlackBlackBlackBlackBlackBlack</OPTION>
<OPTION VALUE="2" CLASS="white" WIDTH="10">WhiteWhiteWhiteWhiteWhiteWhiteWhiteWhite</OPTION>
<OPTION VALUE="3" CLASS="red" WIDTH="10">Red  Red  Red  Red  Red  Red  Red  Red  </OPTION>
</SELECT>
<INPUT type="button" value="do" onClick="alert(F.s.value); return true"/>
</FORM>
</BODY>
</HTML>
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32508988
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код веб формы:
Код: plaintext
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.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
		<title>WebForm1</title>
	</HEAD>
<script language=javascript>
<! --
 
function togreen()
{
	document.getElementById('<%=ListBox1.ClientID%>')[ 3 ].style.color='green'	
}
// -->
 
</script>
	<body MS_POSITIONING="GridLayout">
		<form id="Form1" method="post" runat="server">
			<asp:ListBox id="ListBox1" runat="server"
				Width="136px" Height="248px">
				<asp:ListItem Value="aa">aa</asp:ListItem>
				<asp:ListItem Value="pp">pp</asp:ListItem>
				<asp:ListItem Value="oo">oo</asp:ListItem>
				<asp:ListItem Value="ii">ii</asp:ListItem>
				<asp:ListItem Value="uu">uu</asp:ListItem>
				<asp:ListItem Value="yy">yy</asp:ListItem>
				<asp:ListItem Value="tt">tt</asp:ListItem>
				<asp:ListItem Value="rr">rr</asp:ListItem>
				<asp:ListItem Value="ee">ee</asp:ListItem>
				<asp:ListItem Value="ww">ww</asp:ListItem>
				<asp:ListItem Value="qq">qq</asp:ListItem>
			</asp:ListBox>
			<INPUT onclick="togreen()" type="button" value="3 to green">
			<script language="javascript">
			<! --
 
			document.getElementById('<%=ListBox1.ClientID%>')[ 5 ].style.color='red'
			// -->
 
			</script>
		</form>
	</body>
</HTML>

у меня все работает
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509033
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Павел Воронцов
Вот так ответ!
У меня в связи с таким ответом куча дополнительных вопросов:
1. Нельзя ли обойтись без имени формы.
2. Куда всунуть имя "Listbox4.Items(5)".
3. Почему наименование цвета повторяется несколько раз.
Короче спасибо, конечно, но я не понял ничего.

...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509057
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil
У тебя работает? Блин, а у меня - нет.
А у тебя браузер какой?
У меня IE 6.0
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509079
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я проверил в IE 6.0 и в Firefox'е - все нормально. Сейчас может куда-нибудь выложу, для наглядности. Подожи...
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509105
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509133
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil
Я вроде начинаю понимать.
Смотри, я добавил твой джаваскрипт на свойство кнопки "onclick".
Дальше нажимаю кнопку и тут же цвет элемента меняется на красный!!!
Но когда сервер возвращает отклик, а это происходит быстро - доли секунды - элемент опять красится в чёрный.
Попробовал вставить джаваскрипт в операторе:
Response.Write("<SCRIPT LANGUAGE='JavaScript'> document.getElementById('<%=ListBox1.ClientID%>')[1].style.color='red' </SCRIPT>")
А этот оператор воткнул в процедуру Button5_Click.
Дальше вот что получается:
При нажатии на кнопку Button5_Click программа выдаёт ошибку джаваскрипта: объект, очевидно 'Listbox1' не найден. Видимо к моменту выполнения оператора Response.Write сервер ещё не сформировал объект Listbox1.
И что с этим делать? может заменить серверный элемент управления Button5 на простой?
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509174
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если тебе надо повесить на серверную кнопку клиентский скрипт, то делай:
Код: plaintext
Button5.Attributes.Add("onclick","togreen()");
или
Код: plaintext
Button5.Attributes.Add("onclick","document.getElementById('"+ ListBox1.ClientID +"')[5].style.color='red'");
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509189
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что бы зарегистрировать скрипт используй конструкцию типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
string script = "<script language='JavaScript'>\n";
script += "<!--\n";
script += " function togreen(){document.getElementById('<%=ListBox1.ClientID%>')[3].style.color='green'	}\n";
script += "-->\n";
script += "</script>\n";
if (!Page.IsStartupScriptRegistered("toGreenHandle")) 
	Page.RegisterStartupScript("toGreenHandle", script); 
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509190
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а для элемента 'Listbox1' и name и id заданы в 'Listbox1'?
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509241
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 hDrummer :
Свойства Name и id я нашёл только для клиентской кнопки "HTML". Я их оставил пустыми, так как способ profil не подразумевал вызов этого элемента управления из кода VB.NET (или J#.NET или C#.NET).
2 Вся честная компания:
Заменив серверную кнопку на клиентскую HTML и добавив свойство onclick по способу profil прямо в HTML-отображение файла ASPX, у меня всё заработало.
2 profil
Способ на серверной кнопке ещё опробовать не успел. Сейчас попробую.
Спасибо!!!
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509320
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil:
C серверной кнопкой Web Forms не получается.
Испробовал два способа:
Button5.Attributes("onclick") = "javascript:ColorListBox()"
Button5.Attributes.Add("onclick", "ColorListBox()")
Функцию ColorListBox я зарегистрировал своим способом, вставив её в ASPX-HTML между <HEAD> и </HEAD>.
Зарегистрировать функцию твоим способом через Page.Register... у меня не получилось, так как у объекта "Page" не оказалось дочернего объекта "RegisterStartupScript()" и не оказалось дочернего объекта "IsStartupScriptRegistered". Может не оказалось из-за того, что я использую VB.NET
Но я посмотрел в списке свойств/методов, выскакивающих при наборе Page.
и ничего похожего там нет. Возможно, надо библиотеку какую-то декларировать...
Короче, всё работает, но не так:
1. При нажатии на серверную кнопку видно, что на долю секунды меняется цвет
2. Потом когда сервер возвращает отклик, цвет как назло восстанавливается на чёрный.
Надо как-то заставить сервер возвращать нужный цвет. Только как?

...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509340
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведи код, т.к. вся инфнормация есть, все должно работать.

Max ProЗарегистрировать функцию твоим способом через Page.Register... у меня не получилось, так как у объекта "Page" не оказалось дочернего объекта "RegisterStartupScript()" и не оказалось дочернего объекта "IsStartupScriptRegistered". Может не оказалось из-за того, что я использую VB.NET
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<html>
  <head>
     <script language="VB" runat="server">
    Sub Page_Load( sender as Object,e as EventArgs) 
         
       'Form the script that is to be registered at client side.
        Dim scriptString as String = "<script language=JavaScript> function DoClick() {"
        scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<"
        scriptString += "/"
        scriptString += "script>"
      
            If(Not IsClientScriptBlockRegistered("clientScript"))
        RegisterClientScriptBlock("clientScript", scriptString)
        End If
     End Sub
     </script>
  </head>
  <body topmargin="20" leftmargin="10">
     <form id="myForm" runat="server">
        <input type="text" id="show" style="width= 200 ">
      <input type="button" value="ClickMe" onclick="DoClick()">
     </form>
  </body>
</html>
это пример из мсдн
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpref/html/frlrfSystemWebUIPageClassRegisterClientScriptBlockTopic.htm
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509524
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil:
Ну этот код из MSDN работает (я правда ошибки орфографические там исправил (в конструкции If-Then-Endif)).
Но, profil, вопрос с серверной кнопкой так и не решён: сервер даёт отклик, сводящий на нет весь джаваскрипт.
Надо бы заставить работать твой 1-й способ:
ListBox1.Items(1).Attributes.Add("style", "color:red")
То есть вставить красящий атрибут в отклик сервера.
Но что-то он не срабатывает.
Или как-то надо вставить джаваскрипт в отклик сервера. Только как?
Оператор Response.Wright("HTML") вставляет HTML (в том числе и джаваскрипт) в начало отклика, когда ещё нет никаких объектов.
Как бы вставить скрипт в конец отклика?
P.S. Я наверно тебя сегодня сильно отвлёк, но дело стоящее.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509554
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может тебе сделать для ЛистБокса EnableViewState = true ??
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509651
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To: profil
Это свойство у меня по умолчанию=true.
Пробовал менять на false - не помогает.
Кстати твой способ декларирования джаваскрипт-функции приводит к ошибке. Эта функция почему-то такое впечатление внедряется о отклик сервера ДО МОМЕНТА декларирования ListBox. Соответственно объект не найден.
Вот вкладываю картинку внизу "Приложить файл" и здесь текст выгружаю:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm6</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">function ColorListBox(){document.getElementById('ListBox1')[1].style.color='red'}</script>
<script language="javascript">function OpenDialog(sStr){alert(sStr);}</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="WebForm6.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtMTM2NzUyNjAwO3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDE+O2k8OD47aTwxMj47PjtsPHQ8cDw7cDxsPG9uY2xpY2s7PjtsPGphdmFzY3JpcHQ6IEJ1dHRvbjEuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOz4+Pjs7Pjt0PHQ8O3Q8aTwzPjtAPDAwOzAxOzAyOz47QDwwMDswMTswMjs+Pjs+Ozs+O3Q8cDw7cDxsPG9uY2xpY2s7PjtsPENvbG9yTEIoKTs+Pj47Oz47Pj47Pj47PmqQ/zz7jSDknXGBOhF2YjKKRLEt" />
<script language='javascript'>function ColorLB(){document.getElementById('<%=ListBox1.ClientID%>')[1].style.color='red'}</script>


<input type="submit" name="Button1" value="Button" id="Button1" onclick="javascript: Button1.style.visibility = 'hidden'" style="height:80px;width:160px;Z-INDEX: 101; LEFT: 208px; POSITION: absolute; TOP: 48px" /><a id="HyperLink1" href="http://prohorovma/mskserver/bd/xls/laser.wav" style="height:32px;width:128px;Z-INDEX: 103; LEFT: 200px; POSITION: absolute; TOP: 208px">HyperLink</a><input type="submit" name="Button2" value="Button" id="Button2" style="height:48px;width:88px;Z-INDEX: 104; LEFT: 464px; POSITION: absolute; TOP: 152px" /><span id="Label2" style="height:48px;width:152px;Z-INDEX: 105; LEFT: 216px; POSITION: absolute; TOP: 256px">Label</span><input type="submit" name="Button3" value="Button" id="Button3" style="height:40px;width:64px;Z-INDEX: 106; LEFT: 440px; POSITION: absolute; TOP: 48px" /><table id="Table1" border="0" style="height:64px;width:88px;Z-INDEX: 107; LEFT: 464px; POSITION: absolute; TOP: 240px">

</table><select name="ListBox1" size="4" id="ListBox1" style="height:128px;width:112px;Z-INDEX: 108; LEFT: 600px; POSITION: absolute; TOP: 136px">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>

</select><input type="submit" name="Button4" value="Заполнить" id="Button4" style="width:112px;Z-INDEX: 109; LEFT: 600px; POSITION: absolute; TOP: 104px" /><span id="Label3" style="height:24px;width:112px;Z-INDEX: 110; LEFT: 600px; POSITION: absolute; TOP: 304px">Цвет старый</span><INPUT style="Z-INDEX: 111; LEFT: 600px; WIDTH: 112px; POSITION: absolute; TOP: 264px; HEIGHT: 24px"
onclick="ColorListBox()" type="button" value="Раскрасить">
<input type="submit" name="Button5" value="Раскрасить с сервера" id="Button5" onclick="ColorLB()" style="width:145px;Z-INDEX: 112; LEFT: 568px; POSITION: absolute; TOP: 328px" /></form>
</body>
</HTML>


...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509668
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так сделан RenderContents в классе ListBox в Mono:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
		protected override void RenderContents (HtmlTextWriter writer)
		{
			bool isMultAllowed = (SelectionMode == ListSelectionMode.Multiple);
			bool selMade = false;
			foreach (ListItem current in Items){
				writer.WriteBeginTag ("option");
				if (current.Selected){
					if (!isMultAllowed && selMade)
						throw new HttpException ("Cannot_MultiSelect_In_Single_Mode");
					selMade = true;
					writer.WriteAttribute ("selected", "selected");
				}
				writer.WriteAttribute ("value", current.Value, true);
				writer.Write ('>');
				writer.Write (HttpUtility.HtmlEncode (current.Text));
				writer.WriteEndTag ("option");
				writer.WriteLine ();
			}
		}

Напиши свой контрол, наследуйся от ListBox, и перекрой в нем RenderContents так, чтобы чтобы все необходимые атрибуты выводились на writer.
И все.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509711
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To: Ihor Bobak
Легко сказать - напиши свой контрол. Я ни разу не пробовал.
Нельзя ли внесли улучшающие исправления в сам класс Listbox?
Если можно, то как, где он лежит, этот класс?
Я думаю, он откомпилирован в dll какой-нибудь, хрен туда подкопаешься.
Хорошо бы всё-таки докопаться до истины с наименьшими потерями крови!
Как внедрить джаваскрипт в конец HTML-отклика сервера?
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32509873
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит попробовать - см. сюда:
http://www.ibdesk.com/aspnet/servercontrols.rar

Еще есть такой проэкт "Mono" - .NET для Линукса. Очень помогает читать код контролов Mono - с большой вероятностью код ASP.NET будет таким же. Метод ListBox.RenderContents, который я привел выше, взят именно из Mono.

Лично я подозреваю, что Mono - это либо украденный .NET, либо восстановленный из дизассемблированного кода .NET, так как его модель классов и их поведение - точная копия .NET. Но это уже другая тема. Короче, разобраться как писать контролы ОЧЕНЬ помогает.

См. http://www.go-mono.com
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510091
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ihor Bobak
Первая ссылка не открывается - невозможно отобразить, попробуйте позже.
Вторая ссылка открыла Mono.
Я ковырнул ASP.NET, там просто текст.
Тогда залез на Download.
Нашёл Mono Class Libraries, обрадовался, скачал 8 с лишним мегабайт. Какого же было моё удивление, что скачанный файл оказался с расширением .gz
Открыть этот по-видимому архив я не смог, пришлось стереть его.
Ладно, свой контрол я напишу как-нибудь с помошью книжки.
А пока джаваскрипт изучить придётся.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510109
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro, я там в скрипте ошибочку бопустил, и, насколько я понимаю, ты ее к себе в код перенес ;)
д.б.:
string script = "<script language='JavaScript'>\n";
script += "<!--\n";
script += " function togreen(){document.getElementById ('"+ ListBox1.ClientID +"') [3].style.color='green' }\n";
script += "-->\n";
script += "</script>\n";
if (!Page.IsStartupScriptRegistered("toGreenHandle"))
Page.RegisterStartupScript("toGreenHandle", script);
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]