バージョン 23.1 (最新)

ASP.NET 最新の既知の問題点と制限事項

既知の問題点と制限の概要

以下の表に、Infragistics® for ASP.NET の既知の問題点と制限を簡単に説明します。以下の表は、すべての問題の詳細な説明とその回避策を示します。

凡例

  • Workaround - 回避策あり

  • No Workaround - 回避策なし

  • Fix Planned - 修正予定

WebDataGrid

問題 説明 状態

WebDataGrid のドロップダウン プロバイダーは複数選択をサポートしません。

回避策なし

非バインド列があり、OnInitializeRow イベントが処理されている場合、ページングおよび並べ替え機能が正しく動作しません。

回避策なし

セル値が DropDownProvider の現在のページに表示されない場合、テキストがグリッド セルから取得可能な場合でも、ドロップダウン項目の値は表示されます。WebDataGrid がセルに表示されるコンテンツと異なる値にバインドされるため、このような動作となります。

回避方法

RowEditTemplate が WebTextEditor を含み、行を追加するために手動的に開いた場合、WebTextEditor の値は編集後にクリアされません。結果として、編集モードに入ると以前の値が保持されます。

回避方法

ソース ビューから動作デザイナーが開かれて新規クライアント側イベント ハンドラーが追加された場合、スクリプト セクション ブロックは JavaScript ハンドラー関数で編集されません。

回避方法

Firefox でコンポジションの時のキー イベントを有効にします。コンポジションの時にキーボードのイベントを有効にするために Firefox about:config のページに Dom.keyboardevent.dispatch_during_composition の値を true に設定します。

回避方法

WebHierarchicalDataGrid

問題 説明 状態

HierarchicalDataGrid の行は Firefox で深さが 200 レベルを超える場合描画されません。

回避策なし

WebTab

問題 説明 状態

WebDataTree を WebTab 内で使用した際に ViewState が破損する

WebDataTree コントロールを WebTab 内で使用した場合、ViewState が破損されます。

Workaround: 回避策: Page_Init() で WebTab の InstantiateTemplates() メソッドを呼び出します。

回避方法

InstantiateTemplates() メソッドが呼び出されるまでポストバックでテンプレート付きのコントロールにアクセスできません。

WebTab の InstantiateTemplates() メソッドが呼び出されるまでテンプレートでインスタンス化されるコントロールにアクセスできません。

回避策: テンプレートからコントロールをアクセスする前に WebTab の InstantiateTemplates() メソッドを呼び出します。

回避方法

WebUpload / WebCaptcha

問題 説明 状態

WebUpload/WebCaptcha コントロールをデザイン ペインにドロップするとき、自動的にコントロールの httpModules および httpHandlerssystem.web セクションに追加します。その構成は統合モードで実行する IIS7 以後のバージョンで無効です。

回避方法

WebEditors

問題 説明 状態

By default, デフォルトでテキストおよびマスク エディター以外のすべてのエディターで IME は無効ですが、WebKit ブラウザーで IME がすべてで有効なため、入力時に予期しない結果となる

No Workaround

WebNumericEditor

問題 説明 状態

WebNumericEditor 'MaxValue' オプションは 1000000000000000 以下のみに設定される場合、正しく動作します。WebNumericEditor MinValue オプションは -1000000000000000 以上のみに設定される場合、正しく動作します。

No Workaround

Trident

問題 説明 状態

Trident レイアウト エンジンは状態を一回のみ変更することで HTML のチェックボックス上のダブルクリックを処理します。これはチェックボックスを描画する Infragistics のコントロールの動作において一貫性を欠く場合があります。たとえば、WebDropDown で複数選択が有効な場合に WebDropDown 項目のチェックボックスをダブルクリックすると項目が選択されます。ただしドロップダウン入力の項目のテキストは一度追加して、選択されてから選択解除されます。

Note

回避策: WebDropDown 内 (またその他のコントロール) のチェックボックスは Internet Explorer でダブル クリックされた場合、チェックボックスの状態を手動的に変更する必要があります。

Workaround

WebDataGrid

WebDataGrid のドロップダウン プロバイダーは複数選択をサポートしません。WebDropDown エディターおよびグリッドの間に値を送信する値の取得/設定操作は単一選択のみサがポートされます。エディターに複数の選択した項目がある場合、エディター プロバイダーが破損し、結果が無効になります。

非バインド列および OnInitializeRow イベント ハンドラー

UnboundColumn + OnInitializeRow イベントが処理され、ページングおよび並べ替え機能が有効な場合に正しく動作しない場合があります。非バインドされるレコードが更新される前に Rows コレクションを並べ替えることなどの予期しない動作が起こり、例外が発生する場合があります。

ページングが有効な場合、ドロップダウン項目のテキストが WebDataGrid の DropDownProvider によって正しく取得されません。

セル値が DropDownProvider の現在のページに表示されない場合、テキストがグリッド セルから取得可能な場合も、ドロップダウン項目の値は表示されます。 WebDataGrid がセルに表示されるコンテンツと異なる値にバインドされるため、この動作は正しいです。 セル値が DropDownProvider の現在のページに表示されない場合、テキストがグリッド セルから取得可能な場合も、ドロップダウン項目の値は表示されます。 WebDataGrid がセルに表示されるコンテンツと異なる値にバインドされるため、この動作は正しいです。以下のコードは実装の例です。

ASPX:

<EditorProviders>
      <ig:DropDownProvider ID="ddp1">
            <EditorControl
                  ClientIDMode="Predictable"
                  EnableAutoFiltering="Server"
                  AutoFilterResultSize="2"
                  AutoFilterTimeoutMs="1000"
                  EnableAnimations="false"
                  EnablePaging="true"
                  PageSize="4"
                  AutoFilterQueryType="Contains"
                  DataSourceID="SqlDataSource2"
                  DropDownContainerMaxHeight="200px">
                  <DropDownItemBinding TextField="CAtegoryName" ValueField="CategoryID" />
            </EditorControl>
      </ig:DropDownProvider>
</EditorProviders>

回避策:

ASPX:

<ig:WebDataGrid AutoGenerateColumns="False" ID="WebDataGrid1" runat="server"  OnInitializeRow="WebDataGrid1_InitializeRow">

C#:

protected void WebDataGrid1_InitializeRow(object sender, RowEventArgs e)
{
    if (!this.Page.IsPostBack)
    {
        if (e.Row.Index < 8)
        {
            e.Row.Items[3].Text = texts[e.Row.Index];
        }
    }
}

// This is only an example. Actual usage would have to extract these from a data source provider.
string[] texts = new string[] {
    "Beverages",
    "Condiments",
    "Confections",
    "Dairy Products",
    "Grains/Cereals",
    "Meat/Poultry",
    "Produce",
    "Seafood"
};

行の追加で RowEditTemplate をコードによって開く場合、テンプレートで使用される WebTextEditor の値は保持されます。RowEditTemplate が WebTextEditor を含み、行を追加するために手動的に開いた場合、WebTextEditor の値は編集後にクリアされません。結果として、編集モードに入ると以前の値が保持されます。

C#:

protected void Page_PreRender(object sender, EventArgs e)
{
    var templateContainer=  this.WebDataGrid.Behaviors.EditingCore.Behaviors.RowEditTemplate.TemplateContainer;
    WebTextEditor editor =(WebTextEditor)templateContainer.FindControl( "control_Item");
    editor.Value = null;
}

ClientSide イベント ハンドラーが aspx スクリプト ブロック セクションに自動的に追加されない

クライアント イベントボックスをダブルクリックして動作デザイナーから特定の動作にクライアント イベントを追加するには、WebDataGrid のデザイナーはソース ビューからではなくデザイン ビューから開く必要があります。

Visual Studio のプロパティ ウィンドウでソース ビューからクライアント イベントを追加する方法があります。

例: ソース ビューにページを開きます → WebDataGrid マークアップタグを選択し、動作へ移動します → EditingCore → プロパティ ウィンドウの EditingClientEvents リスト、生成するには RowDeleted イベント をダブルクリックします。

この制限は WebHierarchicalDataGrid コントロールにも適用されます。

IME コンポジション時に DropDownProvider キーボードのイベントがない問題

Firefox でコンポジションの時のキー イベントを有効にします。コンポジション時にキーボードのイベントを有効にするために Firefox about:config のページで Dom.keyboardevent.dispatch_during_composition 値を true に設定します。

HierarchicalDataGrid

HierarchicalDataGrid の行は Firefox ブラウザーの DOM レベルの制限により深さが 200 レベル以上の場合は描画されません。この制限は Firefox でここにログされます。

WebUpload/WebCaptcha

IIS7 以後の場合、ツールボックスから WebUpload/WebCaptcha を追加すると、HTTP エラー 500.22 が発生する

この問題を処理する複数の方法があります。 ツールボックスを使用しないでコントロールを追加し、手動的に HTTP ハンドラーとモジュールを追加できます。 デザイナーでコントロールをドロップするには、モジュールを system.WebServer → modules セクションに変更できます。または、エラー メッセージの命令によりコマンド ラインで AppCmd を使用してアプリケーションを移行できます。

HTTP コントロールの HTTP ハンドラーの回避策も同様です。

WebEditors

デフォルトでテキストおよびマスク エディター以外のすべてのエディターで IME は無効ですが、WebKit ブラウザーで IME がすべてで有効なため、入力時に予期しない結果となる

デフォルトでテキストおよびマスク エディター以外のすべてのエディターで IME は無効ですが、WebKit ブラウザーで IME がすべてで有効なため、入力時に予期しない結果となる

WebNumericEditor

WebNumericEditor MaxValue/MinValue オプションはクライアントに指数近似として表示されない値に制限されます。

WebNumericEditor MaxValue/MinValue オプションはクライアントに指数近似として表示されない値に制限される WebNumericEditor MaxValue1000000000000000 より大きい数字で正しく動作しません。1000000000000000 より大きい数字は指数表記で表示されるためです。 E 表記の数字はクライアント側に四捨五入されますので、誤った使用可能な最大値になる可能性があります。 WebNumericEditor MinValue-1000000000000000 より大きい数字で正しく動作しません。-1000000000000000 より大きい数字は指数表記で表示されるためです。 E 表記の数字はクライアント側に四捨五入されますので、誤った使用可能な最小値になる可能性があります。

Trident

Trident レイアウト エンジンは状態を一回のみ変更することで HTML のチェックボックス上のダブルクリックを処理します。これはチェックボックスを描画する Infragistics のコントロールの動作において一貫性を欠く場合があります。たとえば、WebDropDown で複数選択が有効な場合に WebDropDown 項目のチェックボックスをダブルクリックすると項目が選択されます。ただしドロップダウン入力の項目のテキストは一度追加して、選択されてから選択解除されます。

WebDropDown 内 (またその他のコントロール) のチェックボックスは Internet Explorer でダブル クリックされた場合、チェックボックスの状態を手動的に変更する必要があります。

回避策:

ASPX:

<ig:WebDropDown ID="WebDropDown1" MultipleSelectionType="Checkbox" EnableMultipleSelection="true" runat="server" >
    <ClientEvents Initialize="WebDropDown1_Initialize" />
</ig:WebDropDown>

<script>
function WebDropDown1_Initialize(event) {
 $addHandler($find("WebDropDown1")._elements["List"], 'dblclick', function (e) {
  if (e.target.type === "checkbox" && ($util.IsIE || $util.IsEdge)) {
   e.target.checked = !e.target.checked;
  }
 });
}
</script>