2017-03-13 91 views
0

我試圖獲取第二個iframe的id,它是在codebehind中添加一些css樣式的iframe2。這是我的html:在C#中獲取iframe元素#

<body> 
    <form id="Form1" method="post" runat="server"> 
     <table id="Table1"> 
      <tr> 
       <td> 
        <iframe id="iframe1"> 
        </iframe> 
        <uc1 id="uc1"></uc1> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Panel id="Panel"> 
        </asp:Panel> 
        <uc1 id="uc2"> 
        </uc1> 
       </td> 

       <td> 
        <iframe id="iframe2"> 
        </iframe> 
       </td> 
      </tr> 
     </table> 
    </form> 
</body> 

出於某種原因,我無法獲得在C#中的iframe id。我該怎麼做?

回答

0

訪問的iFrame

確保您的runat="server"屬性添加到:

<iframe id="iframe2" runat="server"></iframe> 

這將使對通過FindControl()方法來訪問它在你的後臺代碼:

// Access your iframe 
var iframe = FindControl("iframe2"); 
iframe.Style.Add("border", "2px solid red"); 

或直接使用其指定的id

iframe2.Style.Add("border", "2px solid red"); 

關於造型

你提到你明確嘗試這種風格元素。如果是這種情況,那麼您應該使用CSS,而不是在元素本身上設置內聯樣式。

舉例來說,你可以應用樣式,這樣來定位元素:

<style type='text/css'> 
    #iframe { 
     /* Place your styles here (i.e. border: 4px solid red, etc.) */ 
    } 
</style> 

值得一提的是,其實造型的打算只風格元素本身,因爲這是在它呈現的內容基本上是在元素中「沙箱」,並不會受到某些指定樣式的影響。

+0

由於某種原因,當我添加runat =「server」時,我得到了400個錯誤的請求錯誤 – ITDeveloper

0

將IFrame更改爲具有runat =「server」,然後您可以在服務器端進行訪問。

<iframe ID="MyIframe" src="" runat="server"></iframe> 

您可以在C#中設置設置項目。

MyIframe.Attributes["src"] = Page.ResolveClientUrl("~/ThisOtherPage.aspx"); 
MyIframe.Attributes.Add("style", "cursor:pointer;");