1

「UpdatePanel、ScriptManager、および CalendarExtender , in one of them, theCalendarExtender」の同じコードを含む 2 つのページが正常に動作していますが、もう一方のページでは次のエラーが発生しています。

CalendarExtender is not a known Element

これが私のコードですaspx

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolKit" TagPrefix="asp" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
   <div id="conteudo" style="text-align: left">                    
        <fieldset id="fieldset" style="width:730px; margin-left: -200px">
        <legend style="text-align:center;"><b>Detalhes do Chamado</b></legend>                                   
        <div id="DetalhesChamado">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true" EnablePartialRendering="true"></asp:ScriptManager>
         <asp:UpdatePanel ID="UpdatePanel1" runat="server">
         <ContentTemplate>
            //Here is a gridview  
            <asp:CalendarExtender runat="server"></asp:CalendarExtender>

しかし、それでもエラーが発生します...

--アップデート2--

今、私はこのエラーが発生しています:
The TargetControlID of 'CalendarExtender1' is not valid. A control with ID 'TxtPrevisao' could not be found.

私の新しいコード:

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TxtPrevisao" runat="server" Width="115px"></asp:TextBox>
        <asp:CalendarExtender ID="CalendarExtender1" runat="server" Format=" dd ,MMMM ,yyyy" TargetControlID="TxtPrevisao" PopupButtonID="TxtPrevisao" CssClass="MyCalendar">
        </asp:CalendarExtender>
     </ItemTemplate>
</asp:TemplateField>
4

2 に答える 2

3

Ajax-Kit のタグ プレフィックスを変更して、動作するかどうかを確認します。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>

また:

<act:CalendarExtender runat="server"></act:CalendarExtender>

asp は、UpdatePanel などの Asp.Net コンポーネントに使用されます。

------------ アップデート 2 -------------------

新しいエラーには、PopupButtonID をテキスト ボックスに割り当てることはできません。ImageButton が必要です。

<asp:ImageButton ID="btnCalenderPopup" runat="server" ImageUrl="App_Themes/Standard/Img/calendar.png" CausesValidation="False" />

それでも、Took-Kit のタグ プレフィックスを正しく割り当てる必要があり、SanjeevRai が言ったようにアセンブリを正しく参照する必要があると私は主張します。

于 2013-03-13T12:14:25.780 に答える
1

「Ajaxtoolkit」dll の参照をプロジェクトに追加する必要があります。「AjaxToolkit」DLL の適切な参照を取得していないようです。

Web サイトを右クリックして [プロパティ ページ] オプションを選択すると、プロジェクトの参照を確認できます。次に、すべての参照が表示されます。ここから、「Ajaxtoolkit」参照がプロジェクトに存在するかどうかを確認できます。

プロジェクトに Ajaxtoolkit 参照が存在しない場合は、最初にこの参照を追加する必要があります。

------------ アップデート 2 -------------------

あなたのコードを見た後、私は問題を抱えていました。

実際には、グリッドビュー内でcalenderextenderとそのTargetControlIDテキストボックスを使用しているため、テキストボックスのIDを取得していません.aspxページで子コントロールIDを直接識別することはありません. gridview の RowDataBound イベント内で、実行時に「TargetControlID」と「PopupButtonID」をアタッチする必要があります。

aspx.cs ファイルで使用できるコードのサンプルを次に示します。

void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TextBox txt = (TextBox)e.Row.FindControl("TxtPrevisao");
        CalendarExtender Calendar1 = (CalendarExtender)e.Row.FindControl("CalendarExtender1");
        Calendar1.TargetControlID=txt.ID;
        Calendar1.PopupButtonID=txt.ID;
    }
}

そして、.aspx ページで、rowdatabound イベントをグリッドにアタッチし、calenderextender から 'TargetControlID' および 'PopupButtonID' 属性を削除します。

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TxtPrevisao" runat="server" Width="115px"></asp:TextBox>
        <asp:CalendarExtender ID="CalendarExtender1" runat="server" Format=" dd ,MMMM ,yyyy" CssClass="MyCalendar">
        </asp:CalendarExtender>
     </ItemTemplate>
</asp:TemplateField>
于 2013-03-13T12:20:39.077 に答える