0
protected void btnSelectCommittee_Click(object sender, EventArgs e)
    {
        this.WebDialogWindow1.WindowState = Infragistics.Web.UI.LayoutControls.DialogWindowState.Normal;
    }

通过使用上面的代码,它可以将 web 对话窗口的 windowState 更改为可见。现在的问题是它正在刷新页面。似乎可以通过使用onClientClick方法和调用javascript函数来避免页面刷新。但是,我不知道如何Infragistics DialogWindowState通过 Javascript 更新窗口状态。请帮忙!

4

2 回答 2

3

当然,它会刷新页面。它是服务器端句柄,需要它在远程客户端上产生任何更改。但是,不要忘记 ASP.NET 控件在 JavaScript 中也有一个客户端对象模型 (CSOM)(您可以使用它来处理事件和操作控件)。我认为您需要的是有关对话框窗口客户端事件的示例,并在其中注意您为 WebDialogFrame.aspx 中的“显示对话框图像”按钮准备了完全相同的功能(显示按钮):

<img id="ShowDialogButton" src="<%= this.GetGlobalResourceObject("WebDialogWindow","ClientSideEvents_ShowDialogImage") %>" width="98"
            height="24"  alt="<%= this.GetGlobalResourceObject("WebDialogWindow","Client_Side_Events_Tooltip_1") %>" onclick="$find('<%=WebDialogWindow1.ClientID%>').set_windowState($IG.DialogWindowState.Normal);" />

我已经删除了重要的部分,您可以将其作为点击处理程序分配给您认为适合客户端的任何内容,并添加了解释:

// Show the dialog
function showDialog() {
    // get reference to the Infragistics.Web.UI.WebDialogWindow instance 
    var dialog = $find('<%=WebDialogWindow1.ClientID%>');
    //perform any checks neccesary or skip them, it's ok to
    //set Normal state even if the dialog is already visible
    if (dialog.get_windowState() != $IG.DialogWindowState.Normal)
    //set state to Normal
        dialog.set_windowState($IG.DialogWindowState.Normal);
}
于 2013-09-18T09:01:21.040 回答
2

答案相当简单,可以在windowState不刷新页面的情况下使用onClientClick="return showDialog();"

function showDialog() {
        var dialogWindow = $find('<%=WebDialogWindow1.ClientID%>');

        //Using `show()` method to display the window if the windowState is hidden
        dialogWindow.show();

        //using `hide()` method to hide the windowState
        //dialogWindow.hide();
        return false;
    }
于 2013-09-19T04:00:49.073 回答