powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
38 сообщений из 38, показаны все 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
Как изменить цвет строки в ListBox ?
    #32510319
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil
Да, после этого исправления студия уже не ругается, и скрипт исполняется,
но цвет изменяется только на долю секунды, после чего опять становится чёрным. Видимо всё-таки исполняется скрипт, потом идёт обновление страницы, которое сводит на нет весь скрипт.
Надо бы чтобы скрипт запускался уже после обновления страницы.
Возможно ли такое?
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510748
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут наваял следующий код (если чего не так - сразу говорю я VB не селен):
код формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
................
<asp:ListBox id="ListBox1" runat="server" Width="224px" Height="128px">
	<asp:ListItem Value="000000001"> 000000001 </asp:ListItem>
	<asp:ListItem Value="000000002"> 000000002 </asp:ListItem>
	<asp:ListItem Value="000000003"> 000000003 </asp:ListItem>
	<asp:ListItem Value="000000004"> 000000004 </asp:ListItem>
	<asp:ListItem Value="000000005"> 000000005 </asp:ListItem>
	<asp:ListItem Value="000000006"> 000000006 </asp:ListItem>
</asp:ListBox>
<asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
<%=toGreen%>
................
codebehind:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
................
    Dim green As Integer


    Public ReadOnly Property toGreen() As String
        Get
            If green >  0  Then
                Return "<script language='javascript'>document.getElementById('" & ListBox1.ClientID & "')[" & green & "].style.color='green'</script>"
            End If
        End Get
    End Property

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        green = - 1 
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        green =  4 
    End Sub
................

переменную green можешь сохранять во ViewState
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510802
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, читал-читал и так ничего не понял. Независимо от того что делается на сервере в результате браузер на стороне клиента получает текст который как-то интерпретирует. Соответственно если предложенная в начале обсуждения хтмл конструкция

<OPTION VALUE="1" CLASS="black" WIDTH="10">Black</OPTION>
<OPTION VALUE="2" CLASS="white" WIDTH="10">White</OPTION>

не проходит то никакими ухищрениями раскрасить строки нельзя. Ёпера такое не поддерживает. Или не об этом речь?
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510861
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 profil
Ну что я могу на это ответить?
1) Я попробовал.
2) Всё работает.
profil, ты гений!
Удалось-таки Била Гейса победить в этот раз!
:-)
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32510872
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 1024:
HTML + JavaScript творит чудеса, вопрос был в том как эти нужные строки воткнуть куда надо средствами ASP.NET
И вобщем-то profil решил эту задачу.
С уважением,
Max Pro
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32511743
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код контрола, который тебе нужен (сделал за 5 минут):
Код: 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.
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace AdvancedControls
{
	[ToolboxData("<{0}:AdvancedDropDownList runat=server></{0}:AdvancedDropDownList>")]
	public class AdvancedDropDownList: DropDownList
	{
		protected override void RenderContents (HtmlTextWriter writer)
		{
			if(Items != null)
			{
				bool selected = false;
				foreach(ListItem current in Items)
				{
					writer.WriteBeginTag("option");
					if(current.Selected)
					{
						if(selected)
							throw new HttpException("Cannot_Multiselect_In_DropDownList");
						selected = true;
						writer.WriteAttribute("selected", "selected", false);
					}
					writer.WriteAttribute("value", current.Value, true);
					current.Attributes.Render(writer);
					writer.Write('>');
					HttpUtility.HtmlEncode(current.Text, writer);
					writer.WriteEndTag("option");
					writer.WriteLine();
				}
			}
		}
	}
}

Обрати внимание на строчку
Код: plaintext
1.
					current.Attributes.Render(writer);


В апликации, использующей этот контрол сделай
Код: plaintext
1.
2.
3.
4.
5.
		private void Page_Load(object sender, System.EventArgs e)
		{
			AdvancedDropDownList1.Items[ 0 ].Attributes.Add("style", "background-color:blue;");
			AdvancedDropDownList1.Items[ 1 ].Attributes.Add("style", "background-color:yellow;");
		}

К стати, со ссылкой http://www.ibdesk.com/aspnet/servercontrols.rar все нормально - не знаю, почему у тебя не работает.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32512649
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ihor Bobak
Спасибо, обязательно возьму на вооружение!
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32521843
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я набрал код Ihor Bobak
Потом вставил Dll-файл в TollBox.
Всё работает отлично.
Жаль только, что нельзя одновременно менять цвет фона и цвет текста.
Ihor Bobak, как думаешь, что делать, чтобы менять и фон и текст одновременно?
Может есть кроме одного свойства style коллекция этих стилей. А то я так понял, если сначала красишь фон, а потом текст, то цвет фона как бы забивается цветом текста.

Прикладываю в виде архива Zip готовую версию контрола. Правда, в отличие от Ihor Bobak, я работал не с ниспадающим списком DropDownList, а с ListBox.

...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32521912
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчто делать, чтобы менять и фон и текст одновременно?
Нужно менять ещё и атрибут color в стиле.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32521979
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вот как надо одновременно менять и фон и цвет:
WebListBox1.Items(2).Attributes.Add("style", "background-color:red;color:green;")
Это на Бэйсике. На Си так:
WebListBox1.Items[2].Attributes.Add("style", "background-color:red;color:green;");
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32578355
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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); 

profil,
сейчас использую твой способ.
В этом скрипте ошибка если так можно сказать, а может и не ошибка, не знаю.
Только студия ругается на использование "\n". Это как я понимаю судя по контексту ничто иное как попытка добавить возврат каретки.
Может в Си и прокатывает, но в Бэйсике ошибку выдаёт.
Поэтому я сделал как в школе учили - вместо возврата каретки вставил
chr(13)
Вот так:
scriptString &= "-->" & Chr(13)
С уважением,
Max Pro

P.S. Если кому интересно, 13-й символ это возврат каретки, а 12-й - переход на следующую страницу.
По крайней мере в MS-DOS так было.
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32742237
disel_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, все работает... Надо только знать какой контрол юзаете.
<asp:ListBox> в своих "Items" не имеет понятия об атрибуте style тега <Option>,
это надо делать в контроле <SELECT>, там все работает.
На клиенте раскрасить options для Selecta не вызывает проблем JScript или VBScript
с эти справляются без проблем.
Если надо сделать это в серверном коде - можно так:
В тег <SELECT> добавить runat=server. В декларация обьявить контрол типа -
Protected WithEvents mySelect As System.Web.UI.HtmlControls.HtmlSelect
В заполнении контрола значениями написать например так:
For Each Row In Rows
strList = New ListItem
strList.Value = Row.Item(0).ToString
strList.Text = Row.Item(1).ToString
strList.Attributes.Add("style", "color:green")
If Row.Item(2) = 1 Then
strList.Attributes.Add("style", "color:blue")
End If
mySelect.Items.Add(strList)
Next
И не надо мутить никаких классов или обработчиков событий. Вся задача решается за
5 минут. Вообщем читайте MSDN там все написано...
...
Рейтинг: 0 / 0
Как изменить цвет строки в ListBox ?
    #32828658
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ссылка от микрософта к последнему посту http://support.microsoft.com/default.aspx?scid=kb;en-us;309338
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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