2011-10-24 206 views
1

首先,我將描述Web窗體佈局:ASP.Net AJAX模式彈出窗口

形式包含GridView1與「詳細信息」按鈕,打開第二GridView2,其目的當然是爲了展示從父級GridView1中選擇的項目的詳細信息。所有控件都在服務器端代碼隱藏中動態呈現。

挑戰:

我需要打造了展示,當用戶點擊,在孩子GridView2是作爲一個TemplateField Image控件圖標的模式彈出窗口。這樣用戶就可以在子GridView2中添加註釋。

我的方法:

我試圖讓AJAXToolKit的過程中預渲染階段連線以模板列圖標模式彈出擴展(ID =「MPE」)。由於的TargetControlID不能爲空或空的,我做的是創建一個虛擬按鈕控制和模態彈出擴展的的TargetControlID屬性設置爲所謂的虛擬按鈕的ID,然後將模板列添加到GridView2後,我的的TargetControlID屬性設置爲圖標的ID,即「icon_addComment」。

問題:

當我嘗試到的TargetControlID屬性設置爲圖標的ID,該代碼拋出錯誤「的‘MPE’的的TargetControlID無效ID爲‘icon_addComment’的控制。找不到。「。我很爲難,我怎麼能得到這個正常工作,似乎沒有辦法左右的目標控制必須在模式彈出擴展之前創建的條件得到。我想要的只是將子GridView2圖標的ID作爲模式彈出式擴展程序的TargetControlID

回答

1

將虛擬隱藏按鈕用作模式彈出擴展程序的目標控件ID,然後使用java-script來顯示/隱藏實際圖標點擊的模式彈出窗口。例如,

<asp:ModalPopupExtender runat="server" ID="MyPopup" ... /> 

<script type="text/javascript" /> 

function showPopup() { 
    $find('<%= MyPopup.ClientID ').show(); 
} 

function hidePopup() { 
    $find('<%= MyPopup.ClientID ').hide(); 
} 

</script> 

就我個人而言,我不是ajax控制工具包的粉絲。對於這個要求,我會用jquery UI Dialog