問題タブ [gridview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET Gridview への動的列の追加
GridView に列を動的に追加する際に問題が発生しています。DropDownList の値に基づいて、レイアウト (つまり、含まれる列) を変更する必要があります。ユーザーがこのリストの選択を変更すると、最初の列を除くすべてを削除し、選択に基づいて列を動的に追加する必要があります。
マークアップで定義されている列は 1 つだけです。列 0 はテンプレート列で、そこで Select リンクと別のアプリケーション固有の LinkButton を宣言します。その列は常にそこにある必要があります。ListBoxSelection が作成されたら、最初の列以外をすべて削除してから、目的の列を再度追加します (このサンプルでは、常に「タイトル」列を追加するように簡略化しています)。コードの一部を次に示します。
このコードを初めて実行すると、静的列と動的に追加された「タイトル」列の両方が表示されます。ただし、次に選択が行われると、最初の列は空 (何もない) で生成されます。タイトル列が表示され、その左側に最初の列が表示されますが、その中には何も生成されていません。デバッガーを見ると、gvPrimaryListView にはまだ 2 つの列があり、最初の列 (インデックス 0) は実際にはテンプレート列であることがわかります。実際、列は、以下のマークアップで 165px として設定されている幅も保持します (デバッグ目的で)。
何か案は?
いくつかの追加情報。
それが最初の列であるという事実とは何の関係もありませんが、それが TemplateField であるという事実とはすべて関係があります。通常の列を (マークアップで) 左に配置し、TemplateField 列を右に移動すると、最初の列が正常にレンダリングされ、(現在は 2 番目の) TemplateField 列が消えます。
もう1つの奇妙なこと-問題は最初のポストバックまたは2番目のポストバックでは発生しませんが、3番目のポストバックで始まり、その後のポストバックが続きます。私は困惑しています。
.net - GridView チェックボックス列
以前は、DataGridColumn クラスから継承した Datagrid 用のクラスを 1.1 で使用していました。これにより、ヘッダーにクライアント側の un/check-all ボックスを含むチェック ボックス列を作成できました。次に、グリッドを設計するときに、カスタム列を追加するだけです。
現在、グリッド ビューに同様の機能が必要なプロジェクトに取り組んでいますが、列に機能を継承または追加する方法はないようです。
だから私の質問は、列をオーバーライドする方法はありますか? または、このコードは再利用可能な方法で既に存在していますか?
必要なものは単純です。JavaScript をページに登録し、チェック ボックスの列をレンダリングするだけです。
私はすでに 4guys のサンプルに遭遇しましたが、彼らはすべてのコードをコード ビハインドに入れただけで、コピー/貼り付けが少し少ないものを探しています。
gridview - GridViewアイテムのテキストラッピング
実行時に動的に作成しているGridViewコントロールがあります。このようにすべての列を作成しています。
ただし、テキストを折り返さないようにアイテムを指定した場合でも、IE6では折り返します。FireFoxでは、幅が指定されていても、非常に幅の広い列が作成されるだけで、おそらくどちらでもありません。
GridViewでこれらの幅と折り返し列を実際に制御する方法はありますか?
asp.net - GridView の並べ替え: SortDirection は常に昇順
グリッドビューがあり、ユーザーがヘッダーをクリックしたときにその要素を並べ替える必要があります。
そのデータソースは List オブジェクトです。
aspx は次のように定義されます。
コードビハインドは次のように定義されています:
最初のロード:
ユーザーがヘッダーをクリックしたとき:
私の問題は、e.SortDirection が常に Ascending に設定されていることです。
同様のコードの Web ページがあり、うまく機能します。e.SortDirection は昇順と降順を交互に切り替えます。
私は何を間違えましたか?
asp.net - データ型に基づいて ASP.Net GridView の列をフォーマットする
ストアド プロシージャのフロント エンドとして機能する非常に単純な ASP.Net ページがあります。プロシージャを実行するだけで、gridview コントロールを使用して出力が表示されます。aspx マークアップを含め、合計コードは 40 行未満です。ストアド プロシージャ自体は非常に揮発性です。さまざまな目的で使用され、出力形式は定期的に変更されます。
gridview コントロールは、ストアド プロシージャが返す列を実際に気にする必要がないため、すべてがうまく機能します。ページにそれらを表示するだけです。これはまさに私が望むものです。
ただし、これが実行されるデータベースには、時間部分がそれほど重要ではない場所に多数の日時列があり、常にゼロになっています。私ができるようにしたいのは、どの列になるかを正確に知らなくても、グリッドビューの日時列だけの書式設定を制御することです。結果の列に日時型がある場合はいつでも、時間コンポーネントを切り取る特定のフォーマット文字列を適用するだけです。
データベースで varchar に変換できることはわかっていますが、開発者にクエリの書式設定を気にさせる必要はなく、とにかくプレゼンテーション レベルに属します。他のアイデアはありますか?
最後に、このコードを使用して、許容できる (または少なくとも改善された) 方法でこれを機能させました。
asp.net - runat=server コンテナー内の GridView/ObjectDataSource がバインドされない
PickFromList と EnterValue という 2 つのラジオ ボタンを備えた小さな Web フォームがあります。PickFromList がチェックされている場合、ObjectDataSource にバインドするように構成した GridView を表示したいと考えています。EnterValue がチェックされると、GridView が消えます。
このフォームはテーブルを使用してレイアウトされており、適切なデータとユーザー入力に基づいて適切な行を非表示/表示する必要があります。
残念ながら、trPickFromList2 行で id 属性と runat="server" 属性が指定されている場合、GridView はバインドされません。trPickFromList2 行から id と runat="server" を削除すると、正常にバインドされます。
何か案は?
c# - クリア中のフォームビュー
私の問題は、送信ボタンを押すと、すべてのテキストボックスのフォームビューがクリアされることです。
私は現在、その周りに更新パネルがある小さなセクションを持つページを持っています。この小さなセクションは、私のデータベースに住所を追加します。このフォームの左側には、フォームビューに関連付けられたグリッドビューがあります。したがって、グリッドビューのアイテムをクリックすると、その内容がアドレスセクション (フォームビュー) に正しいデータを入力します。
追加を押すと、データは C# コード ビハインドで検証され、すべての情報が正しい場合はアドレスが挿入されます。エラーが発生した場合、フォーム全体がクリアされ、エラー メッセージ (ラベル) が表示されます。
私はすでに他のページでこれを何度も行っていますが、グリッドビューをフォームビューに関連付けたものはなく、すべて機能しています。グリッドビューを削除しようとしましたが、フォームはまだ消去されています。
.net がフォームをクリアする必要があると考える理由はありますか? 他の場合に、そうしないと判断するのはいつですか?もしそうなら、これらのケースは何ですか、またはこれを解決するためにどのような一般的なヒントを試みる必要がありますか?
gridview - グリッドビューでハイパーリンク ボタンを使用するにはどうすればよいですか?
グリッドビューでハイパーリンク ボタンを使用するにはどうすればよいですか。つまり、プログラムを実行すると、すべてのデータがグリッドビューに表示されますが、グリッドビューにハイパーリンクが必要なため、ハイパーリンクをクリックすると、グリッドビューにある選択パスが表示されます:pdfファイルパスがあり、私はちょうどこのハイパーリンクをクリックすると、pdf ファイルが表示されます。
どうすればこれができるか教えてもらえますか?
asp.net - 1 つのグリッドビュー - 2 つのデータソース?
私は同僚の Web サイトで作業していますが、彼は誤って TypeName ではなく TypeID を表示するグリッドビューを作成しました。彼が持っているような任意の ID 番号ではなく、型の実際の名前を入力したいと思います。ページに 2 つの「ObjectDataSource」があります。1 つはタイプ用、もう 1 つはアイテム用です。Items には、アイテムのタイプの ID が含まれており、これはすべて Items データソースにあります。彼はこの ID を取得して、グリッドビューにデータを入力しています。その ID を使用して、他のデータ ソースから NAME を取得し、その NAME をその特定の列のグリッドビューに配置したいと考えています。これはできますか?グリッドビューで 2 つの異なるデータソースを使用できますか?
asp.net - GridView テキスト ボックスの編集時に Enter キーをキャプチャする
次のように定義された GridView があります。
[編集] ボタンを使用して行を編集モードにした後、Enter キーをキャプチャして行の更新をトリガーするにはどうすればよいですか? 現在、Enter キーを押すと、ページがリロードされ、TextBox に入力された内容が失われ、行は編集モードのままになります。フォームでEnter キーを完全に無効にする方法 (現在の回避策) は知っていますが、Update コマンドを起動させたいと考えています。