Handling Infragisitcs WebDialogWindow WindowState via javasc


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

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

当然,它会刷新页面。它是服务器端句柄,需要它才能在远程客户端上生成任何更改。但是,不要忘记 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);
}

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

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;
    }

最新更新