【问题标题】:can't get selected state of a items of asp.net checked list box while mannul post backmannul回发时无法获取asp.net选中列表框项目的选定状态
【发布时间】:2015-04-17 05:33:05
【问题描述】:
function CountrySelect(uniqueID) {

        var dialog_buttons = {};
        dialog_buttons['Save'] = function () { __doPostBack('chkcountries', ''); }

        $(document).ready(function () {
            $(function () {
                var dlg = $("#dialog").dialog({
                    maxWidth: 400,
                    maxHeight: 500,
                    width: 400,
                    height: 500,

                    autoOpen: false,
                    modal: true,
                    buttons:dialog_buttons,
                    title:"Country Selection dialog",
                    close: CloseFunction
                    ,
                    show: {
                        effect: "Clip",
                        duration: 1000
                    },
                    hide: {
                        effect: "fade",
                        duration: 1000
                    }
                });

带有 id 对话框的 div 的标记是

<div id="dialog" style="display:none">
        <p>Select Countries</p>
        <p>
            <asp:CheckBoxList ID="chkcountries"  runat="server">                   
            </asp:CheckBoxList>
        </p>

在cs文件中的代码是

 foreach (ListItem val in chkcountries.Items)
   {
       if (val.Selected == true)
        {

        }
   }

问题在于回发它说没有检查任何项目。为什么

我无法获得复选框列表项的选中状态。

val.selected=false 

总是

【问题讨论】:

    标签: javascript c# jquery html asp.net


    【解决方案1】:

    不幸的是,我还不能创建 cmets,所以我必须在答案中这样做。我们需要查看填充“chkcountries”的代码。我认为您是在页面加载事件中执行此操作,而不是在执行此操作时检查您是否处于回发状态。因此,每次页面加载(包括回发)时,您的复选框都会重新加载,因此它们都不会被选中。

    请发布您的 page_load 代码或您正在加载复选框列表控件的任何位置。

    【讨论】:

    • 我在 if (!IsPostBack) { //ddl 绑定代码 } 中执行此操作
    【解决方案2】:

    在您的复选框中添加这些属性

    <asp:CheckBoxList ID="chkcountries" runat="server" EnableViewState="true">
    </asp:CheckBoxList>
    

    EnableViewState 设置为 true 将保留回发时的控制状态

    【讨论】:

    • 视图状态已为页面上的所有控件启用。此外,当我通过 asp.net 控件回发时,它工作得很好。我认为这个使用 Javascript 的 mannaul 回发我缺少一些东西。
    • 这就是我的回发方式 dialog_buttons['Save'] = function () { __doPostBack('chkcountries', ''); }
    • 尝试将runat 属性添加到您的dialog_button['Save']
    • 我不认为 jquery ui 对话框按钮支持 runat="server" 属性你能发布一个 workin sn-p 吗?
    • 检查一下 this link 你可能会有所了解.. :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多