2012-08-31 36 views
0
<div id='popup'>  
    <input id='btnConfirm'/>     
</div>          

    $("#btnConfirm").click(function() {         


       var frame = $('#[id$=ReportViewer1ParameterArea]'); //get the frame  

       //s57 is a table element in the viewer        
       frame.contents().find("#Preview")      
       .click(     
        function() {       
         alert('hover!');     
        }      
       );     



      });      

下面是Telerik的報表查看器中呈現的HTML的一部分無法在報表視圖按鈕來訪問預覽按鈕DIV同一ASPX頁面上

<iframe id="ctl00_ctl00_MainContent_MainContent_ReportViewer1ParametersArea"    scrolling="auto" width="100%" height="0px" frameborder="0" align="left"    src="/Telerik.ReportViewer.axd?instanceID=0001be3494c046c69b091014203c2914&culture=en-US&uiculture=en-US&optype=Parameters" style="height: 26px;">    
<table id="parametersTable" cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">    
<tr id="parametersRow">     
<td valign="middle" align="center" rowspan="2">    
<input id="Preview" type="submit" onclick="return ParametersPage.Validate();"    value="Preview" name="Preview">    
</td>    
</tr>     

問題:
我需要訪問預覽按鈕在包含ID = btnConfirm的按鈕的DIV的報表查看器中的ID =「預覽」,如上面在JQuery腳本中給出的那樣。 ASPX頁面包含Telerik Report Viewer。我把代碼中的 $(「#btnConfirm」)點擊(函數()事件,但不工作,你能不能給我的想法,請

+1

從'#刪除''# [id $ = ReportViewer1ParameterArea]' – Bogdan

+0

Ha! Creasy的想法使用「屬性結束於」選擇器,我喜歡它)但是,這個選擇器會比通過id選擇器得到更慢,所以也許你可以在你的C#代碼中使用'ReportViewer1ParameterArea.ClientID'來獲得一個元素的真實ID 。 –

+0

@spider:試過你說的,它不起作用。 – Ruruboy

回答

0

嘗試使用這個選擇:?

var frame = $('[id$="ReportViewer1ParameterArea]"'); 

刪除在#並添加引號"圍繞價值

+0

它不起作用。 – Ruruboy

0

下面的代碼是我開發的,使我的代碼工作:

var reportFrame = document.getElementById('ctl00_ctl00_MainContent_MainContent_ReportViewer1ParametersArea'); 
var reportDocument = reportFrame.contentWindow.document; 

var body = reportDocument.getElementsByTagName("body")[0]; 
$(body).contents().find("#Preview").click();