c# - jQuery 对话框和 Repeater 中的复选框问题

标签 c# jquery asp.net

所以我基本上已经有一段时间在这个问题上用头撞墙了。对不起,如果我在这里抛出太多代码,不知道更好的解释方法。我有一个带有 ItemTemplate 的 Repeater:

<ItemTemplate>
    <div id='FileFrame<%#Eval("Id")%>' class="view">
        <userControl:ConfigFiles ID=<%#Eval("Id")%> runat="server" />
    </div>
</ItemTemplate>

一些为 div 设置对话框的 jQuery。

$(document).ready(function() {
        $(".view").dialog({
            autoOpen: false,
            title: "Configuration Files",
            buttons: {},
            height: 600,
            width: 800,
            open: function (type, data) { $(this).parent().appendTo("form"); }
        });
    });

还有一些打开对话框的 jQuery。

$("#FileFrame"+ConfigId).dialog('open');

现在,用户控件内部有一堆复选框,位于其他中继器内,还有一个“下载选中的复选框”按钮。问题是,当我进行调试并单击按钮时,除非我最初在 aspx 页面上设置 Checked="true",否则没有一个复选框被读取为已选中。

这是代码背后的一个片段,它没有按照我认为应该做的去做。

foreach (RepeaterItem item in FilesRepeater.Items)
    {
        CheckBox box = item.FindControl("DownloadFileCheckBox") as CheckBox;
        if (box.Checked) //<-- always false unless I set it to true in aspx,
                         //    then it's always true
            {/*do work here*/}
    }

有什么建议吗?

最佳答案

我以前有过类似的问题(回发不填充控制值)。问题是生成的对话框在表单标签之外。

使用

$("#FileFrame"+ConfigId).parent().appendTo($("form:first"));  

或类似的代码将对话框代码移动到表单中

希望这会有所帮助。

关于c# - jQuery 对话框和 Repeater 中的复选框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740703/

相关文章:

javascript - $(this) 和范围 - 传递特定元素

asp.net - 我们什么时候应该使用 SignalR 自托管,什么时候不应该使用?

c# - 使用linq从xml中获取键值对

c# - 如何捕获另一个进程的未处理异常?

c# - 对循环缓冲区进行排序的最有效方法

javascript - 根据鼠标位置移动div

javascript - AJAX完成后加载网页

c# - 将呈现的 HTML 写入文件

javascript - 在单个 WebForm 中拥有多个 Google Maps API

c# - 计算与 ListView 中的指定字符串匹配的项目数