2017-03-13 23 views
0

コードビハインドでiframe2である2番目のiframeのIDを取得して、CSSスタイルを追加しようとしています。これは私のhtmlです:iframe要素をC#で取得する

<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> 

何らかの理由で、私はiframe IDをC#で取得できません。どうすればいいですか?これはFindControl()メソッドを介してコードビハインドあなたにそれにアクセスすることを可能にします

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

答えて

0

あなたはにrunat="server"属性を追加していることを確認インラインフレーム

へのアクセス

// 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;"); 
関連する問題