Foreach - просмотр списка - PullRequest
       9

Foreach - просмотр списка

0 голосов
/ 09 февраля 2012

У меня есть представление списка - (*

name: ListViewName

), с некоторыми метками внутри, идентификатор (имя) метки:

Biglbl

.. большой, потому что он включает в себя некоторые ссылки и названия.

есть еще одна метка в имени:

lblCatName

, которая возвращает имя категории.

Я хочу проверить каждыйэлемент списка: что такое имя (скажем, «ТЕСТ») и скрытие или отображение некоторых меток или изменение HyperLink navigateUrl.

aspx:

 <asp:ListView ID="ListViewName" OnItemDataBound="ContactsListView_ItemDataBound" runat="server">
        <ItemTemplate>

        <asp:Label Visible="true"  ID="lblCName" Text='<%# Eval("CatName") %>' runat="server" > </asp:Label>

  <asp:Label runat="server" id="lblCName" Visible="false" />
              <div style=".....">

       ...............


         <asp:HyperLink ID="HyperLink4" runat="server" 
      NavigateUrl='<%# "bla.aspx?Id=" + Eval("id").ToString() %>'> 


                  </asp:HyperLink>

         <asp:HyperLink ID="HyperLink7" runat="server" 
      NavigateUrl='<%# "bla.aspx?Id=" + Eval("CatId").ToString() %>'>  <img src="images/btblue.png" /> </asp:HyperLink>

    </asp:Label>  

    </div>


        </ItemTemplate>
        </asp:ListView>

У меня есть код C #:

protected void ContactsListView_ItemDataBound(object sender,ListViewItemEventArgs e)
{
            foreach (ListViewItem item in ListViewName.Items)
        {

            Biglbl = (Label)e.Item.FindControl("Biglbl");
            Label lblCName = (Label)e.Item.FindControl("lblCatName");

            HyperLink Link = (HyperLink)e.Item.FindControl("HyperLink4");
            HyperLink Link2 = (HyperLink)e.Item.FindControl("HyperLink7");

            if (lblCatName.ToString() == "TEST")
            {
                Biglbl.Visible = true;
                Link.NavigateUrl = "blabla";
                Link2.NavigateUrl = "blabla";
            }
            else
            {
                Biglbl.Visible = false;
                Link.NavigateUrl = "aaaa";
                Link2.NavigateUrl = "aaaa";
            }

        }
}

Я не знаю, как использовать здесь foreache для своих нужд.

Что мне нужно сделать (я думаю, что if и findcontrol's в порядке ... мне нужносделай что поменять в foreac.

1 Ответ

3 голосов
/ 09 февраля 2012
foreach (ListViewItem item in ListViewName.Items)
{
  // Code goes here.
}

РЕДАКТИРОВАТЬ : я вижу, вопрос теперь показывает, что вы используете ItemDataBound. Это передаст вам каждый ListViewItem, поскольку он связан, так что нет необходимости делать a для каждого цикла.

Вы можете просто привести отправителя к этому типу

ListViewItem item = (ListViewItem)sender;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...