-1

このページの求人リストに似たスクリプトを作成するための最良の方法を見つけようとしています: http://www.usi.edu/careersv/jobsearch.asp . データベースを作成してデータを入力しましたが、ページの内容に近い方法で情報を表示する最も効率的な方法に行き詰まっています。私の理想的な外観は、上部にAZハイパーリンクがあり、ユーザーが文字をクリックすると、水平リストの下に利用可能なものが表示されます.

これは私がこれまでに行ったことです:

  @using admin.code.Database

    @{
       var car = new DatabaseEntities();
       var result = (from item in table.Lists                  
              orderby item.Name ascending 
              select item);

 foreach (var res in result)
{
   <div>
     <ul>
         <li><a href="@res.Link">@res.Name</a></li>
      </ul>
  </div>
}

}

より効率的な方向に進むためのアドバイスをもらえますか?

4

3 に答える 3

1

最初の文字でグループ化し、グループをループして表示します。

これに沿った何か:

var result = table.Lists.OrderBy(x => x.Name).GroupBy(x => x.Name[0])

画面:

foreach(var res in result)
{
    <a href="#@res.Key"></a>

    foreach(var item in res.Where(x => x[0] == res.Key){
        <div>
             <ul>
                 <li><a href="@item.Link">@item.Name</a></li>
              </ul>
          </div>
    }
}

空の文字列がないことを確認するか、文字検索でそのケースを処理してください。

于 2013-08-16T21:32:11.427 に答える
0

キー値 (つまり、タブ名) から始めて、そこからクエリを作成します。

var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".Cast<string>();

var tabs =
  from letter in letters
  select new {
    Key = letter,
    Items =
      from item in tables.Lists
      where item.Name.StartsWith(letter, StringComparison.CurrentCultureIgnoreCase)
      select item
  };

<ul id="navLinks">
foreach (var tab in tabs) {
  <li>
    <a class="navLink" href="#@tab.Key">
      @tab.Key
    </a>
  </li>
}
</ul>

<div id="items">
  foreach (var tab in tabs) {
    <ul id="@tab.Key" class="tab">
      foreach (var item in tab.Items) {
        <li class="tabItem">
          @item.Name
        </li>
      }
    </ul>
  }
</div>
于 2013-08-16T22:39:38.253 に答える
0
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();

var car = new DatabaseEntities();
var result = table.Lists.OrderBy(l=>l.Name); // For displaying them all
var groups=result.GroupBy(l=>l.Substring(0,1)).OrderBy(l=>l.Key);
var hasAlpha=groups.Select(l=>l.key);

<ul>
foreach(var letter in alpha)
{
if (hasAlpha.Contains(letter.toString())
{
<li>@letter.toString()</li>

} else {
<li><a href="#@letter.toString()">@letter.ToString()</a></li>
}
</ul>

foreach(var group in groups)
{
<ul id="#@group.Key">
foreach(var item in group)
{
<li>@item.Name</li>
}
</ul>
}
于 2013-08-16T21:44:59.913 に答える