Asp.net 在代码隐藏中创建Radwindow并避免在Radwindow关闭时回发

Asp.net 在代码隐藏中创建Radwindow并避免在Radwindow关闭时回发,asp.net,telerik,Asp.net,Telerik,我可以在服务器端创建一个窗口。下面是单击按钮时执行的代码。关闭按钮也在代码隐藏中创建 protected void OpenRW_Click(object sender, System.EventArgs e) { RadWindow window = new RadWindow(); window.Modal = true; window.EnableViewState = false; window.VisibleO

我可以在服务器端创建一个窗口。下面是单击按钮时执行的代码。关闭按钮也在代码隐藏中创建

protected void OpenRW_Click(object sender, System.EventArgs e)
      {
        RadWindow window = new RadWindow();
        window.Modal = true;
        window.EnableViewState = false;
        window.VisibleOnPageLoad = true;
        window.Width = 300;
        window.Height = 300;

        window.VisibleOnPageLoad = true;
        window.Visible = true;
        window.DestroyOnClose = true;
        window.Behaviors = Telerik.Web.UI.WindowBehaviors.Move;

        window.ID = "Popup";

        //create close button here

        Button closebt = new Button();
        closebt.Visible = true;
        closebt.Text = "Close";

        closebt.OnClientClick = "$find(\" <%= Popup.ClientID %> \").close(); return false;";



        closebt.Style.Add("position", "absolute");
        closebt.Style.Add("bottom", "5px");
        closebt.Style.Add("right", "10px");


        window.ContentContainer.Controls.Add(closebt);
        RadWindowManager1.Controls.Add(window);

    }
protectedvoid OpenRW\u单击(对象发送方,System.EventArgs e)
{
RadWindow window=新RadWindow();
window.Modal=true;
window.EnableViewState=false;
window.VisibleOnPageLoad=true;
窗宽=300;
窗高=300;
window.VisibleOnPageLoad=true;
window.Visible=true;
window.destroonclose=true;
window.Behaviors=Telerik.Web.UI.WindowBehaviors.Move;
window.ID=“弹出”;
//在这里创建关闭按钮
按钮关闭BT=新按钮();
closebt.Visible=true;
closebt.Text=“Close”;
closebt.OnClientClick=“$find(\”\”).close();返回false;“;
添加(“位置”、“绝对”);
closebt.Style.Add(“底部”、“5px”);
closebt.Style.Add(“右”,“10px”);
window.ContentContainer.Controls.Add(closebt);
RadWindowManager1.Controls.Add(窗口);
}
但由于某种原因,当它关闭时,它会触发一个不必要的回发。我尝试了很多方法,包括将viewonpageload属性设置为false和使用scriptmanager显示窗口,但这会产生相同的结果。任何关于我如何摆脱这种不必要的回复的想法都将不胜感激。提前感谢。

问题在于DNN(dotnetnuke)重新分配客户ID。clientid呈现方式不同,因此js无法识别正在回发中抢先加载的clientid,这会在浏览器中引发异常,从而导致关闭窗口上的额外回发。我的解决方法是使用jquery通过使用window类作为标识符来隐藏窗口的div,然后删除模式覆盖

 closebt.OnClientClick += "$('.<yourwindowclass>').hide();$telerik.$(\".TelerikModalOverlay\").remove(); return false;";
closebt.OnClientClick+=“$('..).hide();$telerik.$(\“.TelerikModalOverlay\”).remove();返回false;”;
我还就这个问题与telerik团队进行了交流。我应该补充一点,他们的支持非常好