Martin Lauritsen Ответов: 1

Как получить значение loweste моего лейбла в C#, XML-файле .Сетчатый элемент управления Repeater


Я пытаюсь получить значение метки loweste от управления ретранслятором с помощью мультиблочных меток.
labels<%# XPath("TourStatusNo") %>'>



внешний интерфейс
<asp:Repeater ID="CategoryRepeater" OnItemDataBound="CategoryRepeater_ItemDataBound" runat="server" DataSourceID="XmlDataSource1">
    <itemtemplate>

        <h3 class="h3DAy">
            <div style="text-align: left;">
                  <%#XPath ("@day")%>:  <%#XPath ("@date")%>
               <asp:Label Visible="false" ID="lblIcon" runat="server" /> 


                            Value:<asp:Label runat="server" ID="lblNo" Text='<%# XPath("TourStatusNo") %>'>


            </div>
        </h3>



С#
Я знаю, как получить значения, просто не могу понять, как я получаю значение loveste TourStatusNo

            Repeater repChild = (Repeater)e.Item.FindControl("childRepeater");



            Label lblIcon = (Label)e.Item.FindControl("lblIcon");
            Label lblNo = (Label)e.Item.FindControl("lblNo");

            foreach (RepeaterItem item in repChild.Items)
            {

                
               


                Label lblTekst1 = (Label)item.FindControl("lblHeadChild");
                Label lblNoNest = (Label)item.FindControl("lblStatusNo");

               // here i want to get the lowest value from my lblNoNest and read into my parent repeater lblNo. Just dont now how i only get the lowest value.


}}<blockquote class="quote"><div class="op">Quote:</div>


Xml-файл - это узел "TourStatusNo" в side Tour, я хочу получить самое низкое значение всегда и прочитать его в голове моего родительского ретранслятора. Его

<Tours date="08.07.2016" day="Fredag">
    <Tour>
      <TourHeader1>08:00 Augustenborg Andels B...</TourHeader1>
      <TourHe<pre lang="text">ader2>09:30 Sønderborg</TourHeader2>
      <TourStatus>IGANGSAT</TourStatus>
      <TourStatusNo>6</TourStatusNo>
      <TourID>3986/3</TourID>
      <Vehicles>
        <Vehicle>
          <VehicleNumber>2</VehicleNumber>
          <VehicleName>Ford Mondeo i sortmetallik lakering</VehicleName>
          <VehicleLicense>tyy 45 567</VehicleLicense>
        </Vehicle>
      </Vehicles>
      <Drivers>
        <Driver>
          <DriverNumber>2</DriverNumber>
          <DriverName>Per Haenger</DriverName>
        </Driver>
      </Drivers>
      <CustomerName>Augustenborg Andels Boligforening</CustomerName>
      &lt;Labels>
        &lt;Label-1>test skilt&lt;/Label-1>
      &lt;/Labels>
      <Places>
        <PlacesHeaderA>Kl.</PlacesHeaderA>
        <PlacesHeaderB>Tekst</PlacesHeaderB>
        <Place>
          <PlaceType>2</PlaceType>
          <PlaceTime>08:00</PlaceTime>
          <Tekst1>Kørsel fra:</Tekst1>
          <Tekst2>Augustenborg Andels Boligforening</Tekst2>
          <Tekst3>Sygehuset</Tekst3>
        </Place>
        <Place>
          <PlaceType>4</PlaceType>
          <PlaceTime>09:30</PlaceTime>
          <Tekst1>Kørsel til:</Tekst1>
          <Tekst2>Sønderborg</Tekst2>
        </Place>
      </Places>
    </Tour>
    <Tour>
      <TourHeader1>13:00 Sønderborg</TourHeader1>
      <TourHeader2>14:00 Augustenborg Andels B...</TourHeader2>
      <TourStatus>ACCEPTERET</TourStatus>
      <TourStatusNo>2</TourStatusNo>
      <TourID>3986/4</TourID>
      <Vehicles>
        <Vehicle>
          <VehicleNumber>2</VehicleNumber>
          <VehicleName>Ford Mondeo i sortmetallik lakering</VehicleName>
          <VehicleLicense>tyy 45 567</VehicleLicense>
        </Vehicle>
      </Vehicles>
      <Drivers>
        <Driver>
          <DriverNumber>2</DriverNumber>
          <DriverName>Per Haenger</DriverName>
        </Driver>
      </Drivers>
      <CustomerName>Augustenborg Andels Boligforening</CustomerName>
      <Places>
        <PlacesHeaderA>Kl.</PlacesHeaderA>
        <PlacesHeaderB>Tekst</PlacesHeaderB>
        <Place>
          <PlaceType>2</PlaceType>
          <PlaceTime>13:00</PlaceTime>
          <Tekst1>Kørsel fra:</Tekst1>
          <Tekst2>Sønderborg</Tekst2>
        </Place>
        <Place>
          <PlaceType>4</PlaceType>
          <PlaceTime>14:00</PlaceTime>
          <Tekst1>Kørsel til:</Tekst1>
          <Tekst2>Augustenborg Andels Boligforening</Tekst2>
          <Tekst3>Sygehuset</Tekst3>
        </Place>
      </Places>
    </Tour>
  </Tours>


</code>


Что я уже пробовал:

Я пробую Xpath min и max, но не так хорошо в этом разбираюсь, я пытаюсь считать в C#...

1 Ответов

Рейтинг:
2

Ehsan Skardu

Привет

попробуйте это решение

Объявите глобальную переменную типа

var minTourStatusNo=0;


проверьте значение minTourStatusNo value в каждом цикле, например

 Repeater repChild = (Repeater)e.Item.FindControl("childRepeater");
 

 
            Label lblIcon = (Label)e.Item.FindControl("lblIcon");
            Label lblNo = (Label)e.Item.FindControl("lblNo");
 
            foreach (RepeaterItem item in repChild.Items)
            {
 
                
               
 

                Label lblTekst1 = (Label)item.FindControl("lblHeadChild");
                Label lblNoNest = (Label)item.FindControl("lblStatusNo");
//you can convert what data type you want like double decimal int64 etc.
              if(Convert.ToInt32(lblNoNest.Text) <mintourstatusno)
                   minTourStatusNo=Convert.ToInt32(lblNoNest.Text);
               // here i want to get the lowest value from my lblNoNest and read into my parent repeater lblNo. Just dont now how i only get the lowest value.

 
}}<blockquote class="quote"><div class="op">Quote:<% =minTourStatusNo.ToString()%></div>
</blockquote>


Martin Lauritsen

Привет, спасибо за помощь, я немного сбит с толку. Ты имеешь в виду вот так

var minTourStatusNo = 0;

если (электронная.Товар.ItemType = = ListItemType.Предмет || е.Товар.ItemType = = ListItemType.AlternatingItem)
{

Repeater repChild = (Repeater) e.Item.FindControl("childRepeater");

Label lblIcon = (Label)e.Item.FindControl("lblIcon");
Label lblNo = (Label)e.Item.FindControl("lblNo");

foreach (RepeaterItem item in repChild.Предметы)
{



Метка lblTekst1 = (метка)элемент.FindControl("lblHeadChild");
Метки lblNoNest = (метки)элементов.FindControl("lblStatusNo");
//вы можете конвертировать любой тип данных, например double decimal int64 и т. д.
если (преобразовать.ToInt32 (пункт.FindControl("lblStatusNo") & lt; mintourstatusno) >
minTourStatusNo = конвертировать.ToInt32 (пункт.FindControl("lblStatusNo")))

и мой лейбл &ЛТ;АСП:метка атрибут runat="сервер" идентификатор="lblNo" текст=в'<%=minTourStatusNo.ToString ()%>'>

Я получил ошибку в "mintourstatusno", она говорит, что имя не существует

[no name]

да работает ли это?

[no name]

но переменная должна быть объявлена вне события.

Martin Lauritsen

я даже пытаюсь изменить его на int. И создайте глобальный класс. Если я понимаю Коррет, вы хотите, чтобы я поместил переменную вне моего события. Что скажут при загрузке страницы для экс ?. Я не могу заставить систему принять это глобальный var. Я нашел эту строку в Stack overflow " не могу определить параметры метода с помощью ключевого слова var, потому что компилятор не может определить сигнатуру метода во время компиляции."

Martin Lauritsen

но я думаю, что, может быть, вы подтолкнули меня в правильном направлении ;)

[no name]

Вы правы, var не будет работать, вместо этого вы должны использовать private int minTourStatusNo=0

Martin Lauritsen

Оператор "< "не может быть применен к операндам типа "object" и "int".

[no name]

Вы не закрыли метод Convert.Toin32, просто скопировав и пропустив эти строки

если (преобразовать.ToInt32 (пункт.FindControl("lblStatusNo")) & lt; mintourstatusno)
minTourStatusNo = конвертировать.ToInt32 (пункт.FindControl("lblStatusNo"));

Martin Lauritsen

Системы.Веб.Пользовательского интерфейса.WebControls.Метка "не может быть преобразована в систему типа".IConvertible".

это мой лейбл &ЛТ;АСП:метка атрибут runat="сервер" идентификатор="lblNo" текст=в'<%=minTourStatusNo.ToString ()%>'/>

[no name]

Попробовать это
если (преобразовать.ToInt32 (пункт.FindControl("lblStatusNo"). Text) & lt; mintourstatusno)
minTourStatusNo = конвертировать.ToInt32 (пункт.FindControl ("lblStatusNo").Text);

Martin Lauritsen

Я пытаюсь изменить его таким образом, чтобы использовать.Текст вместо метки lblTekst1 = (Label)item.FindControl("lblHeadChild");
Метки lblNoNest = (метки)элементов.FindControl("lblStatusNo");



//вы можете конвертировать любой тип данных, например double decimal int64 и т. д.
если (преобразовать.ToInt32 (lblNoNest. Text) & lt; minTourStatusNo)
minTourStatusNo = конвертировать.ToInt32(lblNoNest. Text);

лблно.Текст = minTourStatusNo.Метод toString();
Но теперь он просто выпишет значение 0 из моего личного int minTourStatusNo

[no name]

У вас есть teamviewer?

Martin Lauritsen

я сделал это

Метка lblTekst1 = (метка)элемент.FindControl("lblHeadChild");
Метки lblNoNest = (метки)элементов.FindControl("lblStatusNo");



//вы можете конвертировать любой тип данных, например double decimal int64 и т. д.
если (преобразовать.ToInt32 (lblNoNest. Text) & gt; minTourStatusNo)
minTourStatusNo = конвертировать.ToInt32(lblNoNest. Text);

лблно.Текст = minTourStatusNo.Метод toString();
и теперь он пишет самое высокое значение, так что я знаю, что близок

[no name]

Скопируйте мимо нижеприведенной строки, это будет работать. Не забудьте проголосовать за мой ответ.

если (преобразовать.ToInt32(lblNoNest. Text) & lt; minTourStatusNo)
minTourStatusNo = конвертировать.ToInt32(lblNoNest. Text);

Martin Lauritsen

это именно то, что я сделал, но я записываю значение 0. если я это делаю, то он записывает 9, что является самым высоким значением. Но, может быть, это потому, что и не может использовать это <%=minTourStatusNo.ToString ()%>'/> На моей клиентской стороне
он говорит, что он недоступен из-за его уровня защиты.

Поэтому я делаю это в бэкэнде
лблно.Текст = minTourStatusNo.Метод toString();

[no name]

если все еще не работает, то вы можете показать мне это через teamviewer.

Martin Lauritsen

я меняю Private int на public int minTourStatusNo = 0;
и теперь я могу получить доступ к нему, и он записывает данные, но это самое высокое значение, и я хочу самое низкое, но thasnk вы Су много. Может быть, если я не заставлю его работать, я позволю вам использовать team viewer ;)

[no name]

ладно, конечно.
пинг мне на мой скайп Эхсан.ali52