a.aspx中
<asp:ListBox ID="ListBoxSelectMoreCategoryName" runat="server" >
有操作js赋值给服务器控件ListBoxSelectMoreCategoryNamea.cs中
按钮事件中
            string MoreCategoryID="";
            foreach (ListItem li in ListBoxSelectMoreCategoryName.Items)
            {
                MoreCategoryID = MoreCategoryID + "," + li.Value.ToString();
            }
这里取不到任何值,进程根本不会进入到这个循环中去

解决方案 »

  1.   

    要JS操作的话..不要用服务器控件..用HTML控件..如下:<input type="text" runat="server" />类似的..
      

  2.   

    你要搞清楚页面执行的顺序问题,是先加载CS文件还是JS文件,这样你当然取不到植呀,还没加载呢
      

  3.   

    1. 初始化  - Init 事件 (OnInit 方法)
    2. 加载视图状态 - LoadViewState 方法
    3. 处理回发数据 - LoadPostData 方法
        对实现 IPostBackDataHandler 接口的控件,即可以自动加载回发数据的控件,如 TextBox, DropDownList 等。
    4. 加载 - Load 事件 (OnLoad 方法)
    5. 发送回发更改通知 - RaisePostDataChangedEvent 方法
        对实现 IPostBackDataHandler 接口的控件,即可以自动加载回发数据的控件。
        在第 3 步中加载回发数据,如果回发前后数据发生更改,则在这一步触发相应的服务端事件。
    6. 处理回发事件 - RaisePostBackEvent 方法
        对实现 IPostBackEventHandler 接口的控件,即能引起回发的控件,如 Button, LinkButton, Calendar 等
    7. 预呈现 - PreRender 事件 (OnPreRender 方法)
    8. 保存视图状态 - SaveViewState 方法
    9. 呈现 - Render 方法
    10. 处置 - Dispose 方法
    11. 卸载 - UnLoad 事件 (OnUnLoad 方法)
      

  4.   

    有操作js赋值给服务器控件ListBoxSelectMoreCategoryName 
    =======
    客户端动态为ListBox或者为DropDownList添加的项,用传统的方式服务器段是得不到的解决方案1:
    用Request.Form["ListBoxSelectMoreCategoryName"]尝试读取解决方案2:
    把js动态添加的项写入一个Hidden元素,在服务器段得到解决方案3:
    用AJAX