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

上記のコードを使用すると、Web ダイアログ ウィンドウの windowState を visible に変更できます。問題は、ページを更新していることです。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 に答える