.net打开对话框时总是直接就改变了table的值

父页面:OnClientClick="choose_specs(this)"

function choose_specs(obj) {
            ctl = $(obj).parent().find("table").eq(0).attr("id");
            var goods_category_id = $('#ddlgoods_category_id').find('option:selected').val();            
            var objNum = arguments.length;
            var show = $.dialog({
                id: 'specs',
                lock: true,
                max: false,
                min: false,
                title: "",
                content: 'url:xx.aspx?id=' + id,
                width: 1000,
                height: 500
            });
            show.data = window.document;
        }

另有table控件

xx.apsx页面

 $(function () {
        //窗口API
        var api = frameElement.api, W = api.opener;
        api.button({
            name: '确定',
            focus: true,
            callback: function () {
                var values = "";
                $("input[type=checkbox]").each(function () {
                    if ($(this).is(":checked")) {
                        value = $(this).val();
                        values += value + ",";
                    }
                })
                if (values != null) {
                    frameElement.api.opener.__doPostBack("<%=this.btn %>", values);
                }
                api.close();
                return false;
            }
        }, {
            name: '取消'
        }
            );
    });

xx.aspx页面中是checkBox控件。

我现在遇到的问题是在父页面一点击按钮弹出对话框,table直接被赋值为空,而不是在关闭以后。如果在弹窗中未选中多选按钮的情况下直接点击取消按钮,父页面的table里面就没有任何值。
我想要在关闭了dialog之后再对table进行操作。请教改怎么做?

这和.net没有一毛钱的关系,都是js,callback里对是否确定关闭做一个判断