powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывает Random для изменения стиля Panel внутри Repeater
2 сообщений из 2, страница 1 из 1
Не срабатывает Random для изменения стиля Panel внутри Repeater
    #37570079
yarik_tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Есть репитер:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<asp:Repeater ID="rpH" runat="server" OnItemDataBound="rpH_ItemDataBound" >
    <ItemTemplate>
        <div class="h_element">
            <asp:Panel ID="pnl" ClientIDMode="Static"  runat="server">
               <h4> <%# DataBinder.Eval(Container.DataItem, "ArticleName") %> </h4>
               <%# DataBinder.Eval(Container.DataItem, "ArticleText")%> </asp:Panel>
        </div>
    </ItemTemplate>
</asp:Repeater>



есть событие:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
protected void rpH_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Panel pnl = (Panel)e.Item.FindControl("pnl");
            if (pnl != null)
            {
                string[] hclasses = { "hbRed", "hbGreen", "hbBlue" };
                
                Random rnd = new Random();
                pnl.ID = "pnl" + e.Item.ItemIndex;
                pnl.CssClass = hclasses[rnd.Next(2)].ToString();
                
            }
        }
    }




Так вот при в результате на выходе получается
3 панели с ID = pnl1, pnl2, pnl3 и у них всех один и тот же CssClass (меняется только при перезагрузке странице, но опять у всех панелей один и тот же)

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
........
<div class="h_element">
<div id="pnl0" class="hbRed">
......
</div>

</div>
<div class="h_element">
<div id="pnl1" class="hbRed">
.......
</div>

<div class="h_element">
<div id="pnl2" class="hbRed">
.......
</div>
.........



Если поставить точку останова в любом месте метода, то в результате у панелей разные классы получаются, в чем может быть причина?
...
Рейтинг: 0 / 0
Не срабатывает Random для изменения стиля Panel внутри Repeater
    #37570118
yarik_tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все уже разобрался.

Нужно

Код: c#
1.
Random rnd = new Random();



вынести за пределы метода.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывает Random для изменения стиля Panel внутри Repeater
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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