RegisterClientScriptBlock在userControl中

时间:2010-10-26 12:08:33

标签: c# asp.net jquery jquery-ui

这是我的jquery和javascript代码:

<script type="text/javascript">
$(document).ready(function () {
    //setup new person dialog
    $('#dialog').dialog({
        modal: true,
        modal: true,
        //            show: "clip",
        //          hide: "explode",
        autoOpen: false,

        title: "انتخاب فاکتور",
        open: function (type, data) {
            $(this).parent().appendTo("form");
        }
    });

    //setup edit person dialog
    $('#editPerson').dialog({
        autoOpen: false,
        draggable: true,
        title: "Edit Person",
        open: function (type, data) {
            $(this).parent().appendTo("form");
        }
    });
});

function showDialog(id) {
    $('#' + id).dialog("open");
}

function closeDialog(id) {
    $('#' + id).dialog("close");
}

代码在UserControl中。 我可以显示Dialog客户端:

我可以使用以下代码从服务器注册代码:

Page.ClientScript.RegisterClientScriptBlock(GetType(String), "script", "$(function() {showDialog('dialog');});", True)

此代码在页面中工作,但不在用户控件中。 我该如何解决?

HTML代码:

                                                                                                                                                                                                                  “&GT;                                                                                                                                                                           'runat =“server”/&gt;

2 个答案:

答案 0 :(得分:2)

不确定这是否是问题。由于UserCOntrol是一个命名容器,因此您的元素ID可能已更改。因此,您需要使用ClientID获取ID。

将您的代码更改为此类

$("#<%=yourbuttonid.ClientID%>").dialog("open");

答案 1 :(得分:1)

检查页面的呈现HTML代码。脚本块的顺序是否正确?应该首先设置块,showDialog调用块应该在它下面的某个地方呈现。是你的情况吗?