2014-03-02 51 views
0

我遇到了asp.net中數據網格視圖的問題。代碼如下:ASP.NET網格視圖排序(沒有使用數據庫)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Lab1; 

public partial class Lab2_TicketsView : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     lblViewTicketCategoryError.Visible = false; 
     lblViewTicketUserError.Visible = false; 

     if(!IsPostBack) 
     { 
      string empty = ""; 
      string defaultOption = "All"; 

      ddlTicketViewCategory.Items.Add(empty); 
      ddlTicketViewUsers.Items.Add(defaultOption); 

      foreach(Category c in CategoryUtility.Instance.GetCategories()) 
      { 
       ddlTicketViewCategory.Items.Add(c.Name); 
      } 

      var Users = from usr in UserUtility.Instance.GetUsers() 
         select new 
         { 
          Name = usr.FirstName + " " + usr.LastName, 
          usr.Email 
         }; 

      ddlTicketViewUsers.DataTextField = "Name"; 
      ddlTicketViewUsers.DataValueField = "Email"; 
      ddlTicketViewUsers.DataSource = Users; 
      ddlTicketViewUsers.DataBind(); 

      showTicketList(); 
     } 
    } 

    protected void showTicketList() 
    { 
     var Tickets = from ticket in TicketsUtility.Instance.GetTickets() 
         select new 
         { 
          ticket.Title, 
          Name = ticket.User.FirstName + " " + ticket.User.LastName, 
          ticket.Cateogry, 
          ticket.Description 
         }; 

     dgvTickets.DataSource = Tickets; 
     dgvTickets.DataBind(); 
    } 
    protected void btnFilter_Click(object sender, EventArgs e) 
    { 
     if(ddlTicketViewCategory.SelectedItem.Text == "") 
     { 
      lblViewTicketCategoryError.Visible = true; 
      lblViewTicketCategoryError.Text = "Please select a category"; 
     } 
     else if(ddlTicketViewUsers.SelectedItem.Text == "") 
     { 
      lblViewTicketUserError.Visible = true; 
      lblViewTicketUserError.Text = "Please select a user"; 
     } 
     else 
     { 
      showTicketList(); 
     } 

    } 
} 

輸出顯示在網格視圖中。我試圖根據從下拉列表中選擇的選項對列表進行排序。沒有使用數據庫,只是來自提供的庫(CategoryUtility和UserUtility來自該庫)的文本文件和方法。如何使網格視圖中顯示的數據基於從下拉列表中選擇的選項? SelectedItem.Selected會播放任何類型的部分嗎?我是否使用LINQ,如果是,在哪裏以及如何?任何輸入都將不勝感激。

回答

0

這是一個過濾器,你可以申請其他相同的過程,以及,

  if (ddlTicketViewCategory.SelectedItem != null) 
      { 
       var FilteredList = Tickets.Where(Filter => Filter.Category == ddlTicketViewCategory.SelectedItem.ToString()).ToList(); 
      } 
      dgvTickets.DataSource = FilteredList; 
      dgvTickets.DataBind();