• 自定义控件不能设置属性


    当创建一个服务器端控件时,会提示自定义的属性不能设置值。

    如右图:080918.png

    三步走:

    第一:自定义控件的Class头部装饰以下内容:

        [AspNetHostingPermission(SecurityAction.Demand,
         Level = AspNetHostingPermissionLevel.Minimal),
         AspNetHostingPermission(SecurityAction.InheritanceDemand,
         Level = AspNetHostingPermissionLevel.Minimal),
         DefaultProperty("Text"),
         ToolboxData("<{0}:ServerButton runat=server></{0}:ServerButton>")]

    第二步:

    建议对该Assembly进行签名。工程右键有签名选项。

    第三步:

    web.config里,添加该assembly对应的target

      <pages>
       <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add tagPrefix="kittyway" namespace="kittyway.controls" assembly="kittyway.controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=55cec59b812ec4e2" />
          </controls>
      </pages>

     Webアプリケーション用のカスタムコントロールを作成していると、デザイナを開いたときに以下のようなメッセージがでることがあります。

    コントロールの作成中にエラーが発生しました。
    ~をプロパティ~で設定できませんでした。


    例えばこれとかこれをサンプル実装しているときなど。

    チュートリアル : カスタム サーバー コントロールの開発と使用
    http://msdn.microsoft.com/ja-jp/library/yhzc935f.aspx
    ITemplateでコントロールのプレゼンテーションを分離する(前編):CodeZine
    http://codezine.jp/article/detail/425?p=1
    080918.png

    普通に実行すれば別にきちんと動作するのでいいんですが、デザイナ上で表示されると、カスタムの複合コントロール作っているときなどに困ります。
    デザイナ時の挙動にかかわるものだし、何か属性付け忘れてるんだろうなぁと思って、ButtonやGridViewなんかのBCLのメタデータとその属性を見たり、以下のトピックをひたすら試してたんですが、回避できず。。。

    カスタム サーバー コントロールのメタデータ属性
    http://msdn.microsoft.com/ja-jp/library/ms178658(VS.80).aspx

    なんだかんだで、傾向が見つかったのですが、以下のような感じです。

    ○カスタムコントロールのアセンブリが頻繁にビルドされる環境だと、現象が発生する
    ※WebFormと同じプロジェクトだったり、別プロジェクトであってもリビルドがかかったり。

    正直、開発しづらいんですが、以下のような対処で回避できました。
    ○アセンブリをGACに登録する(=厳密名つける必要があります。)
    ○以下のトピックを参考にカスタムコントロールのアセンブリをweb.configで記述する
    (既定の構成のようにVersion, Culture, PublicKeyTokenをいれた記述で。)

    pages の controls 要素 (ASP.NET 設定スキーマ)
    http://msdn.microsoft.com/ja-jp/library/ms164640.aspx

    はー。疲れました。

  • 相关阅读:
    iOS 字符串的UTF8 编码 以及归档反归档
    iOS 关于关键字高亮
    iOS 适配 ,关于prefix Header 文件的配置
    关于collectionView 的头视图
    关于页面的下拉刷新,和上拉加载 --- > collectionView ,tableView
    Nums数独计算器的感谢版,有3种解题方式,过去注册的也是可以用
    Nums数独计算器,良心软件,给不给钱都是可以的
    人生不过是给自己找一些痕迹,证明自己存在过
    做些有益的事情,人生要懂得自重
    振作才是自己可以走的路,人生不要放弃自己的争取
  • 原文地址:https://www.cnblogs.com/si812cn/p/1636617.html
Copyright © 2020-2023  润新知