0

ダッシュボードに複数のユーザー コントロールを配置しようとしています。ただし、表示されるユーザー コントロールは 1 つだけです。

ダッシュボード.aspx:

<table cellpadding="0" cellspacing="0" border="0" width="220px">
<tr>
<td>
<dc:MyControl ID="c1" runat="server"/>
</td>
<td>
<dc:MyControl ID="c2" runat="server"/>
</td>
</tr>
</table>

ユーザー コントロールで作成されたグローバル オブジェクトが他のオブジェクトを上書きするように見えました。

次に、JavaScript コードを次のように変更しました。

MyControl.ascx:

//Display gauge on the page (has some html5 elements like canvas)
<div id="gauge1" class="gauge"></div>

<script type="text/javascript">
var <%=this.ClientID%>global = new jGauge(); // Create a new gauge.
<%=this.ClientID%>global.id = 'gauge1'; // Link the new gauge to the placeholder DIV.


// This function is called by jQuery once the page has finished loading.
$(document).ready(function () {
<%=this.ClientID%>global.init(); // Put the gauge on the page by initializing it.
});
</script>

ただし、表示されるユーザー コントロールは 1 つだけです。助言がありますか?

4

2 に答える 2

1

gauge1コントロールごとに一意になるようにコンテナID()を変更する必要があります。そうしないと、上書きされます。このようなもの:

<div id="<%=this.ClientID%>gaugecontainer" class="gauge"></div>

そして、動的IDを使用するようにJavascriptを変更します。

<%=this.ClientID%>global.id = '<%=this.ClientID%>gaugecontainer'; 
// Link the new gauge to the placeholder DIV.
于 2012-09-15T20:36:03.753 に答える
0

これを試して

<table cellpadding="0" cellspacing="0" border="0" width="100%">
    <tr>
        <td style="width:50%;">
            <dc:MyControl ID="c1" runat="server"/>
        </td>
        <td style="width:50%;">
            <dc:MyControl ID="c2" runat="server"/>
        </td>
    </tr>

于 2012-09-15T20:30:02.267 に答える