問題タブ [linqdatasource]
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.
.net - リピーターを2回目(Page_Loadで1回目、Page_Prerenderで2回目)に再バインドすると、重複する行が表示されます
質問のリストをユーザーに表示するユーザーコントロールを設計しました。この「質問リスト」コントロールには、リピーターが含まれています。質問に回答するために使用する必要のある質問およびフォームフィールドにはさまざまな種類があるため、ItemTemplateに動的にロードされる一連の「質問入力」コントロールとして実装されます。各質問入力コントロールには、その質問への回答を送信するためのボタンが含まれています。送信された回答は質問のリストを変更することが多いため、回答が送信されてDBに保存された後、質問リストをリバウンドしたいと思います。
上記のすべてが機能していますが、回答が送信された後に質問リストがリバウンドされると、新しいリストに重複した行が含まれ、次のように行が失われます。
元のリスト:
新しいリスト(Q2が重複し、Q4が欠落):
質問リストを再バインドするために動的にロードされた質問入力コントロールで回答の送信を取得する方法は次のとおりです。
質問リストコントロールのPage_Loadで、Page.IsPostBackがtrueの場合、Repeater.DataBind()を呼び出します。これにより、質問入力コントロールが再作成され、ボタンクリックイベントが発生します。最初の課題は、親コントロールのPage_Loadが完了した後にこれらのイベントが発生するという事実でしたが、質問入力コントロールがボタンクリックイベントでTrueに設定できる「ForceReload」プロパティを親コントロールに作成する方法を見つけました。したがって、質問リストコントロールのPage_PreRenderで、ForceReload = trueかどうかを確認し、そうである場合は、Repeater.DataBind()をもう一度呼び出します。
ストレンジネスが発生するのは、この2番目のデータバインドです。コードをステップスルーすると、送信された質問に対応するDataItemが2回表示されます。ただし、2回目に実行されるSQLクエリは、1回目に実行されたものと同じであり、返されるレコードは同じです(つまり、2回目の結果に重複はありません)。
2回目のデータバインディングの前に、ある種のリピーターの「リセット」を実行する必要があると思いますが、それを実行するための関数が表示されません。
考えられる原因....質問の一意キーが1番目のデータバインドと2番目のデータバインドの間で変更されます。奇妙に聞こえるかもしれませんが、それがDBの仕組みです。qivenの質問には、「未回答」状態の「-123」と「回答済み」状態の「123」の一意のIDが含まれる場合があります。IDに同じ状態を強制しても、問題は発生しません。IDの変更は、データソースがテーブルではなくビューであるという事実と関係があり、とにかく私はそれについて何もできません。そして、一意のIDが何であるかわからないのに、なぜリピーターは気にするのでしょうか?
更新:さらにテストを行った後、リピーターやSQLの問題ではなく、間違いなくLINQの問題になりました。簡単な例を次に示します。
最初のバインディングで取得されたデータ:
次に、質問#2が送信され、リストがリバウンドします。2番目のバインディングで取得されたデータ:
したがって、データは正確に正しいです。ただし、これはLINQによって次のプロパティを持つ4つのオブジェクトに変換されます。
したがって、各オブジェクトのキープロパティ(QuestionID)は正しいですが、更新された質問の後のオブジェクトでは、他のプロパティは前のレコードから取得されます。
asp.net - LinqDataSource 動的パラメーター - WhereParameters で OR を強制する
私の「選択」ステートメントでは、LinqDataSource の WhereParameters コレクションを使用するときに、2 つの動的パラメーターを追加する必要があります。
ただし、システムはこれらのパラメーターを として追加しますが、どちらかまたはどちらかが真である場合AND
に実行したいと思います。OR
parameter 1
parameter 2
これはどのように行うことができますか?
c# - LinqDataSource から Xml 列を取得して GridView に表示する
テーブルを表示する LinqDataSource と GridView があります。タイプxmlの列は表示されません。私が考慮していない別のアプローチがあるかもしれませんが、Sql Serverクエリ出力で行うように、クリック可能なxmlを表示するためのリンクを表示してもらいたいと思います(xmlデータのスタイル表示など. )。やり方を知りたい2つのこと
- まず、xml を文字列に変換して取得し、テーブルに表示します。たぶん最初の30文字。
- 最後に、XML 全体を表示するためのクリック可能なリンク、サブテーブル、またはスタイル設定された文字列など、便利なものに xml をスタイルします。
したがって、次は機能し、編集リンクと削除リンクを含む素敵なテーブルを表示します。しかし、Xml フィールドがありません。Xml フィールドのサポートを追加するにはどうすればよいですか?
現在、Page_Load は空です。
c# - LinqDataSource:フィルタリングとgridviewへのバインド
問題は私が望んでいた方法で解決されていませんが、私は先に進んで彼の時間と努力のために:ŁukaszW.plにクレジットを与えます。
私はgridviewコントロールとlinqdatasourceを使用しており、そのすべてが正常に機能しています。searchingBySubjectの機能を追加し、WhereParametersを追加して、gridviewをバインドしました(以下のコードを参照)が、どういうわけか行を返さず、私が検索しているものに基づく行。
エラー:
asp.net - LinqDataSource - null 値のフィルタリング
ASP.Net Web アプリケーションを作成しています。リストビューがあります。データソースはLinqDataSourceです。私のデータベースにはスタッフテーブルがあり、ドロップダウンリストを使用してチームごとにレコードをフィルターしようとしています。ドロップダウンリストで「すべて」を選択するまで、これは正常に機能します。teamID が null のスタッフを除くすべてのスタッフを返します。teamID が null のレコードを返すにはどうすればよいですか?
これは私のコードです:
私のコード ビハインドでは、LinqDataSource 選択イベントを処理します。
ドロップダウンリストが「すべて」のときにwhereパラメータを削除すると、すべてのレコードが強制的に返されると思いましたが、機能しません。
助けてください!
ありがとう、エマ
c# - Linq2SQLを使用してASP.NETおよびC#で不明な数のwhereパラメータを使用してクエリを実行する方法は?
LinqDataSource
table からデータを入力するために使用する GridView がありますTickets
。LinqDataSource
にはAutoGenerateWhereClause="True"
、where 句を次のように動的に構築できるようにするための機能があります。
Where パラメーターは、グリッドビューのヘッダーのドロップダウン リスト フィルターと共に使用されます。dsGridView がすべてのレコードを返すように、null にすることができます。
グリッドビューでページングが有効になっています。
テーブル チケットには というフィールドがありますTimeSpent
。TimeSpent
フィルタリングされたすべてのチケットの合計を計算し、フッターに表示したいと思います。
Linq2SQL
onを使用しgridView_DataBound
て、すべてのチケットの TimeSpent を照会できます。ただし、グリッドビューがフィルター処理されたときに合計 TimeSpent を取得する方法がわかりません。
からチケットを取得しようとしましLinqDataSourceSelectEventArgs.Result
たが、テーブル全体ではなく、gridview の現在のページの合計 TimeSpent のみが返されました。
問題は、Selecting イベントでいくつの Where パラメータが表示されるかわからないことです。Department は null で、WhereParameters に表示されない可能性があり、Category も同様です。
このようなもの:
もちろん機能しません。この問題にどのように取り組むことができるか考えていますか? 前もって感謝します!
更新OnSelected
:以下のように、イベントで dsGridView から返されたデータを再利用することになりました。
c# - スキップアンドテイクが発生する前にLinqDataSourceからデータを取得しますか?
LinqDataSourceを使用するGridViewがあります。GridViewには、デフォルトのページングが有効になっています。Linq2SQLを使用してデータベース全体の単一の列の合計を計算できるように、ページングが行われる前にLinqDataSourceからデータを取得したいと思います。
現在、でLinqDataSource_Selected
イベントを使用しLinqDataSourceStatusEventArgs.Result
ていますが、ページング後のデータ(つまり、そのページのデータ)のみが返されます。
だから私の質問は:ページングが行われる前にLinqDataSourceからデータを取得するにはどうすればよいですか?
asp.net - 空の (linqdatasource) データソースでグリッドビューのフッターを表示する
データグリッドのデータソースは、ドロップダウン リストの値に依存する LINQDataSource です。さらに、フッターを使用して新しいレコードを挿入したいので、空のデータセット テンプレートは使用したくありません。データソースが空かどうかに関係なく、常にフッターを表示する方法を見つけようとしています。
編集:LinqDataSource で型の空/非表示オブジェクトを作成する方法はありますか?
asp.net - コード ビハインドから Gridview への LinqDataSource のバインド
.aspx ページに grdidview コントロールがあり、コード ビハインドから動的に接続して gridview をバインドしようとしていますが、どういうわけかエラーが発生します...このコードの何が問題なのですか? 助けはありますか?
アップデート:
コードを更新した後
正常に動作しますが、ソートしようとすると次のエラーが発生します。
GridView 'gvReport' は、処理されなかった並べ替えイベントを発生させました。
これを追加しましたが、効果はありません。