沒有看到您的代碼,並考慮到您對回發加載時間的擔憂(「......每次回發後緩慢」),我可以建議您也許可以利用ASP.NET ViewState功能來填充下拉列表在初始頁面加載期間只有一次,並讓ASP.NET在隨後的回發期間恢復其狀態(項目以及選定的值)。像下面的僞代碼可以做的伎倆:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
// this.List1 refers to the DropDownList control defined in your page markup
DropDownList list = this.List1;
IList<Tuple<string, string>> items = /* Getting items from the database */;
int selectedItemIndex = /* Getting the selected item index */;
for (int i = 0; i < items.Count; i++)
{
list.Items.Add(new ListItem(items[i].Item1, items[i].Item2, i == selectedItemIndex));
}
}
希望這會有所幫助。
P.S.當你問這樣的問題時,請確保你發佈了相關的代碼片段,否則很難提出建議,因爲問題可能不是它看起來像什麼:-)
如何做到這一點比現在更快取決於你現在是怎麼做的相當多。目前什麼是緩慢的部分? –