[英]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.