[英]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} '>< 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 ></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
。 要在不同頁面之間保存值,請使用Session
, Cookies
或QueryString
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.