問題タブ [templatefield]
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.
c# - DataGrid の TemplateField アイテム テンプレートにラベルを追加します。しかし、フロントエンドではありません
C#、.net
元のコード:
私はこのようなことをしたいと思います:
ただし、boundfield の代わりに、templatefield を使用します。
なぜ私がこのようなことをしているのか知りたい場合は、次のことと関係があります。
asp.net - GridView が断続的に .net TemplateFields を表示しないのはなぜですか
私は GridView でひどい時間を過ごしています。コードを細かく調べてみましたが、問題が見つかりません。
7 つの列を持つ ASP.net GridView があります。データは SQL から取得されます。2 つの列には、ユーザーがクリックしてデータベースのエントリを削除または変更できる JavaScript が保持されます。他の 5 つのフィールドには、データベース内の人物の名前、電話番号、および電子メール アドレスが含まれています。
私のフィールドの 4 つは ASP.net TemplateFields です。
ページが読み込まれると、すべてが正しく表示されます。ただし、ユーザーが JavaScript リンクをクリックしたり、クリックして任意のフィールドで GridView を並べ替えたり、ポストバックを引き起こすその他のアクションを実行したりすると、結果のページに TemplateFields のコンテンツが表示されない場合があります。それらはすべて空白です。
私が何を扱っているかを見ることができるように、次のように定義された「名前」列があります。
デバッガーでコードをステップ実行すると、テンプレート フィールドが正しく表示されている場合でも、名前が表示されている行でデバッガーが停止することがわかります。フィールドがすべて空白の場合、コードを飛び越えてそれらのフィールドの内容を表示します。そして、識別可能な理由はありません。
問題の原因と思われる唯一のことは、クエリ文字列から設定された単一の列挙値があることです (ページにロードするデータを伝えます)。列挙値が 1 に設定されている場合、このエラーは表示されませんが、列挙値が 2 に設定されている場合は常に表示されるようです。
ただし、列挙型は私の gridview コードのどこでも参照されることはありません。
いずれにせよ、GridView.DataSource = x は常に呼び出され、GridView.DataBind() は常に呼び出されます。コードをステップスルーして、データベースからのデータが正しいことを確認してみました。DataBind が呼び出されるコード ブロックと GridViewRow_DataBound イベント ハンドラーでデバッグを試みました。
TemplateField のトラブルに関する他の投稿を見たことがありますが、ここで起こっていることに対処しているようには見えません。
何か案は?
asp.net - カスタム ID を使用して Templatefield Gridview のコントロールにアクセスする方法
私はカスタマイズされたgridviewを持っています。私のグリッドは、ヘッダーを1回クリックするだけで、ユーザー(プログラマー)によるソートなどの設定やオーバーロードの方法なしで、各列をソートできます。(私はこれを正常に実行し、正常に動作します)ユーザー(プログラマー) テンプレート フィールド、ハイパーリンク フィールド、バインド フィールドなど、グリッドに各列を追加できます。ソートするには、列のデータフィールドにアクセスする必要があります。私はこのコードでバインドされたフィールド列にアクセスできます.私はデータフィールドとヘッダーテキストにアクセスできます.サンプル:
ただし、ColumnBound などの templateField でコントロールにアクセスできます。サンプル:
アクセス "Name" (Bind ("Name") または Eval ("Name")) が必要です。どうやって?ポイントがあります: テンプレートフィールドのコントロールの ID (この場合は「Label1」) がわかりません。特別な感謝
c# - DataControlFieldのようなカスタムテンプレートフィールドを作成する方法
GridView
データ列の1つがタイプであるデータを表示するためにを使用していますDateTimeOffset
。ユーザーのタイムゾーンで日付と時刻を表示するには、ユーザーのタイムゾーン設定をユーザーのプロファイル(プロパティ値キー "TimezoneOffset")に保存し、日付と時刻をフォーマットするときにアクセスする必要があります。
templatefieldを使用する場合は、次のように記述する必要があります。
これは複雑すぎて再利用できません。
コードビハインドにプロパティを追加しようとしましたTimeSpan
が(少なくともデータバインディング式からプロパティを移動するため)、ビューのコードビハインドのプロパティにアクセスできないよう<%# ... %>
です。
DataControlField
したがって、ユーザーのタイムゾーンで日付と時刻をフォーマットするカスタムを作成する必要があると思います。
私は始めました:
しかし今、私は立ち往生しています。<abbr class="datetimeoffset"><%# ((DateTimeOffset)Eval("CreatedDate")).ToOffset(userOffsetTimeSpan).ToString("f") %></abbr>
各セルのHTMLを出力するにはどうすればよいですか?
編集:私は最先端:カスタムデータ制御フィールドというタイトルの記事を読んでいます。これまでに追加しました:
ただし、この記事Text
ではインスタンスのプロパティを設定していTableCell
ますが、テーブルセルに部分的なビューをレンダリングしたいと思います。それは可能ですか?
c# - GridView で、1 つの項目テンプレートに複数のコマンドを追加する方法は?
簡単にするために、この例を削除しました。テンプレート フィールドを持つグリッドビューがあります。テンプレート フィールドには、2 つのボタンと 1 つのラベルが含まれています (これらは同じテンプレート フィールドにある必要があります)。最初のボタンでラベル テキストを「勝利」に設定し、もう 1 つのボタンでラベル テキストを「失敗」に設定します。onrowcommand は、テンプレート フィールドのボタンによってトリガーされないようです。どうすればこれを達成できますか?
私のグリッドビューコードは以下の通りです:
と私のコードビハインド:
前もって感謝します!
asp.net - ASP.NET GridViewテンプレートフィールドのチェックボックスは、送信時にその値を保持しません
GridViewのTemplateField内でCheckBoxを使用して、そのGridViewから複数のエントリを選択しようとしています。GridViewのデータソースは、ページの読み込み時に生成されるアイテムのリストです。
問題は、送信ボタンを押すと、すべてのチェックボックスがCheckedプロパティで「false」として返されることです。
行を循環するために、私は以下を使用します:
正しい値にアクセスするには、何を使用すればよいですか?
ありがとう、カタリン
asp.net - `GridView` の ItemTemplate 出力を通常に単純化する
TemplateField
が必要なので、列にを使用していますHeaderTemplate
。ただし、 はItemTemplate
セルのコンテンツを としてレンダリングし<asp:Label>
、出力は次のようになります。
ItemTemplate
出力が次のようになるように、セルのコンテンツをレンダリングする方法はありますか:
提案をありがとう。
c# - asp.netのグリッドビューでIDで列を非表示にします
編集、削除、追加オプションを使用して編集可能なグリッドビューを表示しているasp.netアプリケーションがあります。このグリッドには通常のテンプレート フィールドがあります。一部の列を非表示にしたい。列インデックスを使用してそれを行うことができることを知っています。でも従いたくない。代わりに、ID で列を非表示にしたいと考えています。これは、アプリケーションでさらに列を追加する必要がある場合、コアでコード ゲインを変更する必要があるためです。だから私はこの道を選んでいます。私が見つけたBuに<asp:TemplateField />
はId属性が含まれていません。<asp:TemplateField/>
Idで隠すことができなくなりました。これに対する救済策はありますか?
sorting - テンプレートフィールドとヘッダーテンプレートを使用したGridViewの並べ替え
GridViewを使用していますが、フィルタリング用のヘッダーセルにドロップダウンリストがあります。
並べ替えとページングに関連するイベントハンドラーがあります。
ここで問題となるのは、リンクボタンに「SP名」のテキストを入力すると、リンクをクリックするとページがクラッシュすることです。そうしないと、並べ替え用のリンクが生成されません。ヘッダーテンプレートフィールド(すべて)を削除し、TemplateFieldのHeaderText属性を持つテキストを配置すると、期待どおりに機能します。それらをまとめる方法はありますか?そのドロップダウンと並べ替えが必要です。
ありがとう。
asp.net - ASP.NET textbox cssClass は、レンダリング後に GridView ItemTemplate で上書きされます
グリッドビューの TemplateField 列内にテキスト ボックスがあります。テキスト ボックスの cssClass プロパティを設定すると、レンダリングされた Web ページで「textBox」クラスによって上書きされます。これは正常な動作ですか?(.NET 3.5)
回避策として、'style' 属性を追加しました。