[英]Access list box items added on client side
問題出在Buttons的服務器端點擊處理程序中,我看不到添加到列表框中的新項目。 僅顯示page_load上的項目。 我如何完成我想做的事
我的代碼是這樣的
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (ViewState["gameID"] == null)
{
//Populate Listbox
//Set gameid in viewstate
}
//Add javascript handlers to buttons
btnSomeButton.Attributes.Add("onclick", "aJavaScriptFunction");
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
ListItemCollection x = ListBoxRanks.Items;
//Here items is has just those items that are added to the listbox on page load
}
啊當抽象韭菜:)
Web服務器控件被序列化以在發送響應之前查看狀態,在回發時重新創建控件,並且所有選項都從視圖狀態返回。
當您添加選項項客戶端時,它們不會添加到viewstate。 唯一的方法是使用您自己的隱藏字段來序列化客戶端添加並在回發時讀取它們或者在服務器端添加ajax。
如果Page.IsPostBack
為false
則僅綁定到ListBox。 這將允許您查看客戶端添加的任何項目。
如果您在每個加載上綁定到控件,則會清除ASP.NET從請求中加載的所有現有項。 通過僅綁定如果當前頁面加載未被回發觸發,您允許加載請求中的所有項目,包括客戶端添加的任何項目。
您應該使用ajax將項添加到下拉列表中。 它將確保您的viewstate與服務器端下拉控件同步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.