2

asp.netWebアプリケーションプロジェクトで新しいユーザーコントロールを作成しました。

作成直後のソースは次のようになります。

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="SSR_Project.ascx.vb" Inherits="CS_SSR_RAIO.SSR_Project" %>

しかし、コードを追加するとすぐに、最初の行のエラーがすぐに発生します。

コンテキストは'CS_SSR_RAIO.SSR_Projectのメンバーではありません

まったく同じ宣言を持っているように見える他のユーザーコントロールがありますが、このエラーはありません。

どんな助けでも大歓迎です!

4

7 に答える 7

2

新しいユーザーコントロールのコードビハインドのクラスが見つからなかったため、このエラーが発生しました。これは、ユーザーコントロールをコピーし、名前空間にあり、Inherits属性に正しく追加されなかったためです。

名前空間プレフィックスを追加すると、再び機能し始めました:)

于 2015-12-04T09:50:37.573 に答える
1

私はこれが次の条件の下で私に起こった:

VS2008の(プロジェクトではなく) Webサイトの場合:

1)既存の/機能しているユーザーコントロールをコピーしCTRLました( +クリック、ドラッグ、ドロップなど)
2)コピーを少し変更しました(リストビューのデータソースを別のストアドプロシージャに添付しました)


私はそれを次のように修正しました:

1)新しいユーザーコントロールを作成します(VSに新しいアイテムを追加します)
2)最初にコピーした.ascxを開き、今回はすべてのマークアップをコピーして、新しいユーザーコントロールの.ascxに貼り付けます。
3).ascx.vbファイルについても同じです。コピー元のファイルを開き、すべてのコードをコピーして、新しいユーザーコントロールの.ascs.vbファイルに貼り付けます。


古いファイルと新しいファイルを見るだけでは、それを説明することはできません。それらは同じように見えます。私にとっての違いは、ファイルのコピーが失敗したのに対し、ファイルの内容のコピーは成功したことです。

これは部分的なクラスと関係があるのではないかと思います。また、Webサイトで作業しているときにすべての部分にアクセスできないという事実もあります。プロジェクトに関しては、すべての部分にアクセスできると思います。もしそうなら、何が問題を引き起こしていたのかを知ることができるでしょう。

于 2014-01-22T17:35:07.290 に答える
0

コンテキストにアクセスできます。but your class must inherit from UserControl

リンク: http: //msdn.microsoft.com/fr-fr/library/system.web.ui.control.context (v = vs.80).aspx

ここに画像の説明を入力してください

于 2012-10-09T14:37:27.990 に答える
0

コントロールがSystem.Web.UI.UserControlから継承していることを確認します

コードビハインド(SSR_Project.ascx.vb)には、次のものが必要です。

public partial class SSR_Project : System.Web.UI.UserControl

申し訳ありませんが、C#構文ですが..しかし、画像が表示されます:)

編集:これはVb構文だと思います。

パブリックMustInheritクラスSSR_ProjectはSystem.Web.UI.UserControlを継承します

于 2012-10-09T11:19:30.183 に答える
0

助けてくれてありがとう、zybroxzとKonstantin D。
最後に、私はソリューションからユーザーコントロールを削除し、もう一度追加して同じコードを貼り付けましたが、すべてうまくいきました。ユーザーコントロールの設計者が最初の試行で空であり、2回目は正しく入力されていることに気づきました。

ユーザーコントロールの作成中に問題が発生し、このエラーがpdpファイルに浸透し、削除できなかったとしても、私は驚かないでしょう...

于 2012-10-09T14:30:37.863 に答える
0

既存のコントロールをコピーしてから貼り付けて編集すると、この問題が発生する可能性があります。.aspx.vbページの上部にある「Webフォームデザイナーが生成したコード」ブロックを確認してください。すべてのコントロールをリストする必要があります。つまり、「Protected WithEvents lblX As System.Web.UI.WebControls.Label」で、貼り付けたコントロールをリストに追加すれば、準備は完了です。

于 2014-11-18T14:35:44.053 に答える
0

私にとって、VB.Netでは、問題は次のとおりでした。

このエラーが発生した場合:error BC30456: "AnyPublicMethodOrProperty" is not a member of 'UserControl'

これは、ユーザーコントロールが、正確に継承されたクラスではなく汎用として宣言されているためですUserControl。したがって、デザイナーの親ページ(例:)default.aspx.designer.vbでは、コントロールプロパティは、継承されたUserControlクラスではなく、正確にクラス名で宣言する必要があります。

だから...デザイナーの親ページでこれを見つけてみてください:

'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.System.Web.UI.UserControl

そしてそれをこれに置き換えてください:

'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.Wherever.Your.UserControl.Namespace.Is.Located.UcYourControlNameClass
于 2018-04-16T10:23:43.370 に答える