簡體   English   中英

將下拉列表值保存在viewstate中

[英]save dropdown value in viewstate

我創建了顯示文章的自定義頁面,添加了可以選擇排序順序的下拉菜單,並且實現了自定義分頁。 這是代碼

var sortOrder = new List<string> {"Title", "Date", "Author"};

if (!IsPostBack)
{
    sortOrderDropDownList.DataSource = sortOrder;
    sortOrderDropDownList.DataBind();
}

articles = articles.OrderBy(a => a.Heading).ToList();

if (IsPostBack)
{
    switch (sortOrderDropDownList.SelectedItem.Value)
    {
       case "Date":
           articles = articles.OrderByDescending(a => a.StartDate).ToList();
           break;
       case "Author":
           articles = articles.OrderBy(a => a.AuthorComment).ToList();
           break;
       default:
          articles = articles.OrderBy(a => a.Heading).ToList();
          break;
     }
}

this.ArticleRepeater.DataSource = articles;

if (articles.Count > 10)
{
     int count = articles.Count - (number - 1) * 10 >= 10 ? 10 : articles.Count - (number - 1) * 10 - 1;
     this.ArticleRepeater.DataSource = articles.GetRange((number - 1) * 10, count);
     StringBuilder stringBuilder = new StringBuilder();
     if (number > 1)
     {
        stringBuilder.AppendFormat("<a href='{0}?page={1} '>&lt; Prev</a>  |  ", Request.Url.AbsolutePath, (number - 1));
        stringBuilder.AppendFormat("<b>Page {0}</b>", number);
        if (articles.Count > number * 10)
            stringBuilder.AppendFormat("  |  <a href='{0}?page={1}'>Next &gt;</a>", Request.Url.AbsolutePath, (number + 1));

        this.ArticlePaginator.Text = string.Format("<div class='ArticleListPagination'>{0}</div>", stringBuilder);
      }

      this.ArticleRepeater.DataBind();
}

我將autoPostBack ='true'添加到下拉列表中,並從dropdown選擇,對文章進行了排序,但是當我轉到下一頁時,從dropdown中選擇的值不會保存(因為每次創建頁面時都會創建下拉列表)如何將dropdown值保存到viewstate中? 我還在下拉菜單中設置EnableViewState="True" ViewStateMode="Enabled"

ViewState保存在頁面正文中,因此當您轉到其他頁面時,將創建新的ViewState 要在不同頁面之間保存值,請使用SessionCookiesQueryString

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM