powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
13 сообщений из 38, страница 2 из 2
Как изменить цвет строки в 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
13 сообщений из 38, страница 2 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как изменить цвет строки в ListBox ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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