не работает скрыть кнопку увеличения в webview nativescript [duplicate]

TL; DR: Попробуйте использовать Html.Partial вместо Renderpage


Я получал Object reference not set to an instance of an object, когда пытался сделать вид в представлении, отправив ему модель, например это:

@{
    MyEntity M = new MyEntity();
}
@RenderPage("_MyOtherView.cshtml", M); // error in _MyOtherView, the Model was Null

Отладка показала, что модель была Null внутри MyOtherView. Пока я не сменил его на:

@{
    MyEntity M = new MyEntity();
}
@Html.Partial("_MyOtherView.cshtml", M);

И это сработало.

Кроме того, причина, по которой я не имел Html.Partial для начала, заключалась в том, что Visual Studio иногда выдает ошибки, (f9), если он находится внутри другого построенного цикла foreach, хотя это не ошибка:

@inherits System.Web.Mvc.WebViewPage
@{
    ViewBag.Title = "Entity Index";
    List<MyEntity> MyEntities = new List<MyEntity>();
    MyEntities.Add(new MyEntity());
    MyEntities.Add(new MyEntity());
    MyEntities.Add(new MyEntity());
}
<div>
    @{
        foreach(var M in MyEntities)
        {
            // Squiggly lines below. Hovering says: cannot convert method group 'partial' to non-delegate type Object, did you intend to envoke the Method?
            @Html.Partial("MyOtherView.cshtml");
        }
    }
</div>

Но я смог запустить приложение без проблем с этим " ошибка". Я смог избавиться от ошибки, изменив структуру цикла foreach, чтобы выглядеть так:

@foreach(var M in MyEntities){
    ...
}

Хотя я чувствую, что это потому, что Visual Studio неправильно интерпретировала амперсанды и скобки .

1
задан lakshmi 20 October 2011 в 10:10
поделиться

4 ответа

Есть много вопросов, чтобы посмотреть на этот ответ, например: https://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property

Но вот примерная программа того, что делать. Я предположил, что вы хотите сначала отсортировать имя, а затем дату. Вы можете поместить логику в пользовательский компаратор.

import java.util.*;

public class SortExample {

  public static class Student {
    public String name;
    public String date;

    public Student(String name, String date) {
      this.name = name;
      this.date = date;
    }
  }

  public static class StudentComparator implements Comparator<Student> {
      @Override
      public int compare(Student s, Student t) {
         int f = s.name.compareTo(t.name);
         return (f != 0) ? f : s.date.compareTo(t.date);
      }
  }

  public static void main(String args[]) {
    ArrayList<Student> l = new ArrayList<Student>(Arrays.asList(
      new Student ("x","2010-10-5"),
      new Student ("z","2010-10-15"),
      new Student ("y","2010-10-05"),
      new Student ("x","2010-10-1")
    ));

    System.out.println("Unsorted");
    for(Student s : l) {
      System.out.println(s.name + " " + s.date);
    }

    Collections.sort(l, new StudentComparator());

    System.out.println("Sorted");
    for(Student s : l) {
      System.out.println(s.name + " " + s.date);
    }
  }
}

Вывод этого:

Unsorted
x 2010-10-5
z 2010-10-15
y 2010-10-05
x 2010-10-1
Sorted
x 2010-10-1
x 2010-10-5
y 2010-10-05
z 2010-10-15

EDIT: сортирует список массивов на месте. Сначала вам нужно скопировать его, если вы хотите, чтобы он был новым списком.

5
ответ дан Community 24 August 2018 в 21:00
поделиться

Необходимые методы:

Collections.sort(List<T>)

Collections.sort(List<T>, Comparator<? super T>)

Первый метод можно использовать, если ваш класс Student реализует интерфейс Comparable. В качестве побочного примечания стоит подумать, действительно ли ваши данные должны храниться в сортированной структуре данных, такой как реализация SortedMap (например, TreeMap).

5
ответ дан Adamski 24 August 2018 в 21:00
поделиться

Реализация теста может быть:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Execute {

    public static void main(String args[]) {
        List<Student> list = new ArrayList<Student>();

        list.add(new Student("TestX"));
        list.add(new Student("TestA"));

        System.out.println(list);

        Collections.sort(list);

        System.out.println(list);
    }

}

class Student implements Comparable<Student> {

    private String name;

    public Student() {
        super();
    }

    public Student(String name) {
        super();
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int compareTo(Student student) {
            if (this.name == null || student.name == null) {
                return 0;
            }
        return name.compareTo(student.name);
    }

    @Override
    public String toString() {
        return name;
    }

}
1
ответ дан Francisco Spaeth 24 August 2018 в 21:00
поделиться

Я написал структуру для сортировки текстовых представлений естественного языка объектов в локально-чувствительном порядке:

http://softsmithy.sourceforge.net/lib/docs/api/org /softsmithy/lib/text/Localizables.html

Любой ученик должен будет реализовать Localizable , или вам нужно будет предоставить StudentLocalizer, расширив Localizer .

Maven:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>lib-core</artifactId>  
    <version>0.1</version>  
</dependency>  

Загрузить:

http://sourceforge.net/projects/softsmithy/files/softsmithy /v0.1/

1
ответ дан Puce 24 August 2018 в 21:00
поделиться