1

vbコードを使用してasp.netでdivのサイズを設定する方法

この質問は、div へのアクセスとその高さの設定に関するものです。そして、この質問からの答えは正しいです。

ここで、別の Web フォームの div にアクセスするにはどうすればよいですか?

Default1.aspx と Default2.aspx の 2 つの Web フォームがあり、Web フォーム Default1.aspx は Iframe 内にあり、Iframe は Default2.aspx の div 内にあります。私の Web フォーム Default1.aspx にはボタンがあり、ボタン イベントの背後にあるコードは、Default2.aspx の div のサイズを設定することです。ご理解いただければ幸いです

4

3 に答える 3

1

これが私がそれを機能させた方法です。JavaScriptが必要です:

フォーム1:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script>
    function changeDiv() {
        frames["myiFrame"].document.getElementById("divInFrame").setAttribute("style", "height:1000px");
    }
    </script>
    <title></title>

</head>
<body>
    <form id="form1" runat="server">
    <input id="Button1" type="button" value="button" onclick="changeDiv();" />
    <iframe src="Default2.aspx" style="border: 0px #FFFFFF none;" name="myiFrame" id="myiFrame"
        scrolling="no" frameborder="1" marginheight="0px" marginwidth="0px" height="60px"
        width="468px"></iframe>
    </form>
</body>
</html>

フォーム2:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="divInFrame">
      I am the second form!
    </div>
    </form>
</body>
</html>

したがって、基本的にこの行はすべてを担当しています。

frames["myiFrame"].document.getElementById("divInFrame").setAttribute("style", "height:1000px");

このアプローチを使用すると、Vb から高さを設定する必要は必ずしもないことに注意してください。前の質問のように、通常の HTML div が必要なだけです。

于 2013-02-21T07:10:56.370 に答える
1

その div に直接アクセスできるとは思いませんが、セッション変数を保存することで同様の効果を生み出すことができます。変更する div を含む Web フォームで、Page_Load イベント ハンドラーを使用してそのセッション変数が存在するかどうかを確認し、その変数の値を使用して div の高さを設定します。

編集

このメソッドが iframe で機能するかどうかを確認するテスト ページを作成しました。私が使用したコードは次のとおりです。

メインページで

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Session("divHeight") = "100px"
End Sub

二次ページで

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Session("divHeight") Is Nothing Then
        divTest.Style.Add("height", "50px")
    Else
        divTest.Style.Add("height", Session("divHeight"))
    End If
End Sub

これにより、ボタンが押されると、問題の div の高さが 2 倍になりました。

代替方法のためだけに。

于 2013-02-21T06:53:51.130 に答える
0

Webフォームをロードするとdivにアクセスできますが、他のWebフォームからアクセスすることはできません。これは、Webフォームがロードされたときにすべてのものをブラウザ(クライアント側)にダウンロードし、他のWebフォームがサーバー側になるためです。

于 2013-02-21T06:49:52.533 に答える