1

カレンダーの Web ユーザー コントロールを作成しました。つまり、テキストボックスとカレンダーの画像があります。カレンダーのポップアップをクリックすると、カレンダーが開きます。次に、任意の日付を選択すると、その日付の年が格納されます。私はこのコードを使用します:

<script language="javaScript" type="text/javascript" src="Scripts/Calendar.js">  </script>
<link href="Styles/Calendar.css" rel="stylesheet" type="text/css" />
<table>
    <tr>
        <td>
            <input type="text" name="datum1"/>
        </td>
        <td>
            <img id="Img1" src="images/calFinal.jpg" alt="" runat="server" onclick="setYears(1947, 2040);
   showCalender(this, 'datum1');" />
        </td>
    </tr>
</table>
<div>
    <!-- Calender Script  -->
    <table id="calenderTable">
        <tbody id="calenderTableHead">
            <tr>
                <td colspan="4" align="center">
                    <select onchange="showCalenderBody(createCalender(document.getElementById('selectYear').value,
           this.selectedIndex, false));" id="selectMonth">
                        <option value="0">Jan</option>
                        <option value="1">Feb</option>
                        <option value="2">Mar</option>
                        <option value="3">Apr</option>
                        <option value="4">May</option>
                        <option value="5">Jun</option>
                        <option value="6">Jul</option>
                        <option value="7">Aug</option>
                        <option value="8">Sep</option>
                        <option value="9">Oct</option>
                        <option value="10">Nov</option>
                        <option value="11">Dec</option>
                    </select>
                </td>
                <td colspan="2" align="center">
                    <select onchange="showCalenderBody(createCalender(this.value, 
            document.getElementById('selectMonth').selectedIndex, false));" id="selectYear">
                    </select>
                </td>
                <td align="center">
                    <a href="#" onclick="closeCalender();"><font color="#003333" size="+1">X</font></a>
                </td>
            </tr>
        </tbody>
        <tbody id="calenderTableDays">
            <tr style="">
                <td>Sun</td>
                <td>Mon</td>
                <td>Tue</td>
                <td>Wed</td>
                <td>Thu</td>
                <td>Fri</td>
                <td>Sat</td>
            </tr>
        </tbody>
        <tbody id="calender">
        </tbody>
    </table>
    <!-- End Calender Script  -->
</div>

この問題は、同じ Web フォームでユーザー コントロールを 2 回使用すると発生します。コントロールを登録しました。1回使用すると正常に動作します。でも2箇所欲しい。そのため、同じ Web フォームでユーザー コントロールを複数回使用する方法について、解決策を教えてください。ユーザー コントロールに別の ID を指定しましたが、それでも機能しません。

ユーザー制御のコード:

<tr>
    <td class="directorytdWidth directorylabel">
        School Name:
    </td>
    <td class="directoryTdPadding">
        <asp:TextBox ID="txtSchoolName"  runat="server" Width="120px" ForeColor="#FF9F00"></asp:TextBox>
    </td>
</tr>
<tr>
    <td class="directorytdWidth directorylabel">
        School Passout Year:
    </td>
    <td class="directoryTdPadding">
        <uc1:calendar ID="schoolPassout" runat="server" />
    </td>
</tr>
<tr>
    <td class="directorytdWidth directorylabel">
        College Name:
    </td>
    <td class="directoryTdPadding">
        <asp:TextBox ID="txtCollegeName"  runat="server" Width="120px" ForeColor="#FF9F00"></asp:TextBox>
    </td>
</tr>
<tr>
    <td class="directorytdWidth directorylabel">
        College Passout Year:
    </td>
    <td class="directoryTdPadding">    
       <uc1:calendar ID="collegePassout" runat="server" />
    </td>
</tr>
4

5 に答える 5

0

私は同じ問題に直面しましたが、問題は asp.net ページ内で使用することを好む ID とは関係ありませんでした。asp.net は、ページ内の各要素に ID がない場合、ID を自動的に生成すると思います。

問題は、ascx ファイルをコピーして、クラス名を変更するのを忘れていたことです。ユーザー コントロールごとに異なるクラス名を使用してください。

<%@ Control Language="C#" ClassName="ucSchema2" %>
于 2015-07-14T02:51:40.767 に答える
0

同じユーザー コントロールを同じページで N 回使用できます。動的または静的のいずれかです。唯一のことは、ユーザーコントロールに別の ID を与える必要があることです

これはRegに追加する必要があります

<%@ Register Src="~/UserControls/Hello.ascx" TagPrefix="uc" TagName="Hello" %>

ユーザーコントロールの呼び出し 1

<uc:Hello runat="server" ID="ucHello1" />

ユーザーコントロールの呼び出し 2

<uc:Hello runat="server" ID="ucHello2" />
于 2013-05-22T12:19:39.353 に答える