C# 注册从ajaxified radgrid操纵radwindow的Javascript函数

C# 注册从ajaxified radgrid操纵radwindow的Javascript函数,c#,javascript,asp.net-ajax,radwindow,C#,Javascript,Asp.net Ajax,Radwindow,我正在尝试用一些注册脚本打开radwindow客户端 问题1:如果在启动时执行radwindow,是否有找不到的原因,如果是,为什么以及如何修复它 问题2:每当我调整radgrid时,事件将不再触发。这是有道理的,因为没有回发发生,所以页面永远不会启动。如何让注册的脚本在ajax环境中执行 ----相关代码隐藏---- 受保护的void RadgridProjects\u ItemCommand(对象源,Telerik.Web.UI.GridCommandEventArgs e) { 如果(如C

我正在尝试用一些注册脚本打开radwindow客户端

问题1:如果在启动时执行radwindow,是否有找不到的原因,如果是,为什么以及如何修复它

问题2:每当我调整radgrid时,事件将不再触发。这是有道理的,因为没有回发发生,所以页面永远不会启动。如何让注册的脚本在ajax环境中执行

----相关代码隐藏----

受保护的void RadgridProjects\u ItemCommand(对象源,Telerik.Web.UI.GridCommandEventArgs e)
{
如果(如CommandName==“成员”)
{
会话[“ProjectId”]=(例如,项作为GridDataItem).GetDataKeyValue(“ProjectId”).ToString();
radGridProjectMembers.Rebind();//不同的网格!
ClientScriptManager cs=Page.ClientScript;
字符串js=“ShowWindow()”;
RegisterStartupScript(this.GetType(),“showwindow”,js);
}
}
----Javascript函数----

函数ShowWindow()
{
警报(“代码触发”);
var radWin=$find(“”);
radWin.show();
拉德温·莫维托(650450);
radWin.设置宽度(500);
拉德温。设置高度(400);
}

窗口永远不会打开,但我的测试警报确实会触发。应该注意的是,当我为脚本使用客户端事件时,窗口确实会打开

脚本必须在将
$find()
调用中引用的元素添加到DOM后运行。尝试将
块移动到
的最末端。错误原因说明得很好,但更改脚本位置没有帮助。虽然我没想到会这样。启动脚本和向DOM添加元素不会发生在页面生命周期的不同部分吗?不会,
块在浏览器看到结束标记时被解析和评估。如果脚本在它引用的元素之前,该元素将不会出现在DOM中。现在,如果有比您发布的代码更多的代码,并且该函数由“load”或“ready”处理程序调用,那么就没有问题了。我将脚本放在页面的最底部,但结果没有改变。
    protected void RadgridProjects_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        if (e.CommandName == "Member")
        {
            Session["ProjectId"] = (e.Item as GridDataItem).GetDataKeyValue("ProjectId").ToString();
            radGridProjectMembers.Rebind();   //Not the same grid!

            ClientScriptManager cs = Page.ClientScript;

            string js = "<script type='text/javascript'>ShowWindow()</script>";
            cs.RegisterStartupScript(this.GetType(), "showwindow", js);

        }
     }
     function ShowWindow()
    {
            alert("code fired");
            var radWin = $find("<%= RadWindow1.ClientID %>");
            radWin.show();

            radWin.moveTo(650, 450);
            radWin.set_width(500);
            radWin.set_height(400);
    }