2011-12-28 5 views
7

コードの背後からtelerik rad windowを実行しようとしています。しかし、私はいくつかの問題があります。 私はそれが重要なのかわかりませんが、私はラドグリッドから編集モードでクリックしたボタンからラドゥンウィンドウを実行しようとしています。ページでコードの背後からtelerik RadWindowを実行するには

RadWindow window1 = new RadWindow(); 
window1.NavigateUrl = "http://www.google.com"; 
window1.VisibleOnPageLoad = true; 
window1.ID = "RadWindow1"; 
window1.Width = 500; 
window1.Height = 300; 
window1.VisibleOnPageLoad = true;  
rwm_WindowManager.Windows.Add(window1); 

また、私はRadAjaxPanelに入れRadAjaxManagerrwm_WindowManagerを持っています。
このRadウィンドウが決して現れないという問題があります。エラーはありませんが、ラドウインドウはありません。

+0

RadAjaxPanelとWindowManagerでコードを表示できますか?おそらくパネルが全く見えないかもしれません。ボタンをクリックしたときに、表示されたコードが呼び出されていることを確認してください。 – slfan

+0

お願いします。RadAjaxPanelを通常のasp:Panelに変更して、RadWindowが表示されているかどうか確認してください。 –

答えて

3
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> 
    </telerik:RadScriptManager> 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
    </telerik:RadAjaxManager> 
    <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server"> 
     <telerik:RadWindowManager ID="RadWindowManager1" runat="server"> 
     </telerik:RadWindowManager> 
     <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" 
      OnItemCommand="RadGrid1_ItemCommand"> 
      <MasterTableView DataKeyNames="ID"> 
       <Columns> 
        <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID"> 
        </telerik:GridBoundColumn> 
        <telerik:GridTemplateColumn> 
         <ItemTemplate> 
         </ItemTemplate> 
         <EditItemTemplate> 
          <asp:Button ID="Button1" Text="Open window" CommandName="OpenWindow" runat="server" /> 
         </EditItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridEditCommandColumn> 
        </telerik:GridEditCommandColumn> 
       </Columns> 
      </MasterTableView> 
     </telerik:RadGrid> 
    </telerik:RadAjaxPanel> 

........................

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    dynamic data = new[] { 
      new { ID = "1", Name ="Name11",ParentID = "0"}, 
      new { ID = "2", Name ="Name11",ParentID = "0"}, 
      new { ID = "3", Name ="Name11",ParentID = "0"}, 
      new { ID = "4", Name ="Name11",ParentID = "0"} 
     }; 
    RadGrid1.DataSource = data; 
} 
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) 
{ 
    if (e.CommandName == "OpenWindow") 
    { 
     //RadWindowManager 
     RadWindow window1 = new RadWindow(); 
     window1.NavigateUrl = "http://www.google.com"; 
     window1.VisibleOnPageLoad = true; 
     window1.ID = "RadWindow1"; 
     window1.Width = 500; 
     window1.Height = 300; 
     RadWindowManager1.Windows.Add(window1); 

    } 
} 

RadAjaxPanelの内側にあなたのRadWindowManagerを置きます。

+0

ああ、ありがとう。私の問題は、RadAjaxManager(RadAjaxPanelしかありません)を省いたことです。 RadWindowを開くRadAjaxPanelのユーザーコントロールを考えてみましょう。このコントロールは多くのページで使用されています。各ページにはこのようなコントロールが多数含まれていますが、1ページには1つのRadWindowManagerしか含めることができません。このようなシナリオを達成することは可能ですか? –

+0

RadWindowManagerを省略し、RadWindowを直接RadAjaxPanelに追加すると、すべて正常に動作します。理解できません。 –

1

私はちょうど同様の問題がありました。私はそうのようにそれを解決:

RadAjaxManager.GetCurrent(Page).ResponseScripts.Add(String.Format("$find('{0}').show();", window1.ClientID)); 

私のアプリケーションはVisibleOnPageLoad財産問題のあるものにするRadAjaxを使用するので、私は完全にそれを避けます。

関連する問題