10

この質問は、以前に数十回尋ねられました。しかし解決したことはありません。

を持っていますUpdatePanel

<asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
   <ContentTemplate>
      ...           
   </ContentTemplate>
</asp:UpdatePanel>      

しかし、Visual Studio (2010 (Professional (Windows (7 (Professional (64-bit))))))のビジュアル ページ デザイナーでは、次のエラーが表示されます。

コントロール作成エラー- UpdatePanelSetupToolbar

タイプ 'System.Web.UI.UserControl' には、'ContentTemplate' という名前のパブリック プロパティがありません。

ここに画像の説明を入力
編集:きれいなスクリーンショットのきれいな色が追加され、きれいな効果が得られます

厳密に言えば、これは本当です。 には というパブリック プロパティがありUserControlませContentTemplate

幸い、 myUpdatePanelは でありUpdatePanel、という名前のパブリック プロパティがあります'ContentTemplate'

UpdatePanelでは、Visual Studio に myが であることを納得させるにはどうすればよいUpdatePanelでしょうか?

重要な追加事項

上記のコードは、そのままでは実際には失敗しません。

<asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
   <ContentTemplate>
      ...           
   </ContentTemplate>
</asp:UpdatePanel>  

...ContentTemplate内にコンテンツがある場合にのみ失敗します。

    <asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
        <ContentTemplate>
            <Vista:Toolbar ID="ToolbarSetup" runat="server">
                <ContentTemplate>
                    <asp:LinkButton ID="bbSetupDays" ToolTip="Specify how many allocations will be available on these selected days"
                    OnClick="bbSetupDays_Click"                                        
                    runat="server">Setup Selected Days</asp:LinkButton>         
                </ContentTemplate>
            </Vista:Toolbar>        
        </ContentTemplate>
    </asp:UpdatePanel>      
  • しかし、Visual Studioは内部について不平を言っていませんToolbarSetup
  • UpdatePanelSetupToolbar外部コントロールについて不平を言っています

それで、何と取り引きしますか

タイプ '%s' には '%s' という名前のパブリック プロパティがありません。

?

重要でない追加メモ

ASP.net Web サイトは正常にコンパイル、ビルド、実行されます。不満を言うのは、Visual Studio (2010) のデザイナーだけです。

それで、どうしたのType '%s' does not have a public property named '%s'.

シリーズ

この質問は、進行中の Stackoverflow シリーズ「ユーザー コントロールのテンプレート化」の 1 つです。

4

2 に答える 2

1

更新パネルは本当にクールですが、それを使ってユーザー コントロールを作成することはできません。幸いなことに、ajaxcontroltoolkit の updatepanel を作成するために使用したのと同じ設計パターンに従って、javascript ペイロードを持つ asp.net ユーザー コントロールを作成できます。

UI をブロックしないメッセージ ボックスが必要だったので、2009 年 3 月にこれを作成しました。ajaxcontroltoolkit を使用して、ユーザー コントロールのデザイン パターンに従いました。完全なソースがあり、VS インテリセンスは JavaScript で動作します。これは、ページにドロップするだけのユーザー コントロールであり、心ゆくまで ajax 化できる独自の JavaScript ペイロードを備えています。変更なしでデータリピーターでも機能します。実際には、ウェブサイト asp.net で ajaxcontroltoolkit ユーザーコントロールとして受け入れられました。

必要に応じて、無料で github または他のリポジトリに配置できます。

http://gosylvester.com/downloads/messagebox.aspx

http://gosylvester.com/blog.aspx?id=55

于 2013-11-06T15:27:21.377 に答える
0

設計ごとにこれを解決する必要があります。

更新パネルをページに配置し、更新パネルなしでユーザー コントロールを作成します。

理由: 更新パネルは、ご存じのとおり、非同期ポストバック用のクライアント側スクリプトを自動生成することを目的としています。ユーザーコントロールは、複雑さをカプセル化した自己完結型の機能を備えたビルディングブロックであり、コンテキストへの要件なしでどこにでも配置できる必要があります。この場合、少なくともコントロールをインスタンス化するページにスクリプトマネージャーが必要です。

于 2013-11-05T12:24:53.030 に答える