問題タブ [objectdatasource]
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.
linq-to-sql - GridViewのLinqからSQLのnull値へ
通常、ObjectDataSource を GridView にリンクしていて、Eval を含む TemplateColumn があり、それが Null の場合、「.ToString()」を配置するだけで問題なく動作します。何らかの理由で、Linq to SQL を使用している場合、これは同じようには機能しません。
私はもともと、カスタム BLL を使用して DAL に XSD ファイルを使用していました。ObjectDataSource を使用して GridView に関連付けました。Linq を使用して XSD ファイルを SQL に交換している最中ですが、Null 値を持つ可能性のある列を除いて、すべてが古い方法と同じように機能しています。
以前に誰かがこれに遭遇したことがありますか?もしそうなら、どうすればこの問題を回避できますか?
asp.net - ページングが有効になっていると、ポストバック時に Gridview が消える
DataSourceID プロパティがカスタム ObjectDataSource オブジェクトに設定されている gridview があります。AllowPaging が True に設定されている場合、GridView はポストバック後に消えます。AllowPaging を False に設定すれば問題ありません。誰かが私のためにこれに光を当てることができますか? :)
編集:私が混乱しているもう1つのことは、DataSourceIDを設定すると、グリッドが必要なときにいつでもデータソースからデータを取得できると思ったことです。データを保持していないためにグリッドが消えている場合、グリッドビューがデータソースから必要なデータを取得しないのはなぜですか?
c# - 宣言型データソースを使用する場合、データオブジェクトにプログラムでアクセスできますか?
私はasp.net 2.0を使用しています。宣言型データソースを使用しています。コード ビハインドの一部については、Foo.Bar によって返されるオブジェクトにアクセスする必要があります (次の例)。システムはそれをキャッシュしているので、Foo.Bar() を再呼び出しする代わりに、そのバージョンにアクセスできるはずです。どうすればいいですか?
asp.net - 複数の値が単一のフラグ列挙型にバインドされた CheckBoxList
FlagsAttribute が適用された Enum である基になるオブジェクトの単一のプロパティにバインドしたい CheckBoxList を含む FormView (ObjectDataSource にバインド) があります。SelectedValue プロパティにバインドすると、常にリストから最初に選択された値がプロパティの値として返されます。Inserting メソッドまたは Updating メソッドをオーバーライドし、チェックボックス リストの値を手動で取得してデータソースのパラメータに詰め込むことなく、これを回避する方法を知っている人はいますか? 私がやろうとしていることの以下のサンプルコード...
舞台裏で、私のオブジェクトはこのように宣言されています...
asp.net - DotNetNuke ObjectDataSource.SelectMethod がビューステートに保存されない
DotNetNuke 4.9.2 を使用していますが、奇妙な問題が発生しています。
開発中のモジュールに MultiView があり、ビューの 1 つに ObjectDataSource にバインドされた GridView があります。
別のビューには、2 番目のビューで ObjectDataSource の SelectMethod を切り替えてから、そのビューをアクティブに設定するボタンがいくつかあります。グリッドが 2 番目のビューでソートされるまで、すべて正常に機能します。これにより、ポストバックが発生し、ODS が何らかの方法で元の SelectMethod を取得します。ただし、コード ビハインド スティックで同時に割り当てられる SelectParameters 。
ObjectDataSource がビューステートの SelectMethod を記憶しているように思えますね。
そのボタンをクリックすると、グリッドが期待どおりに表示されます。GridView の列ヘッダーの 1 つをクリックし、ページの読み込みを中断して SelectMethod を検査すると、マークアップで宣言されたものに戻りました。
ここで私の問題が何であるかについて何か提案はありますか?
c# - インポートされた名前空間で ObjectDataSourceControl が Type を見つけることができません
複数の ObjectDataSources を使用する ASP.NET 2.0 アプリケーションに aspx ページがあります。それらはすべて、次のように同じクラスにバインドされています。
これはうまくいきました。それから私は2つの変更を加えました
DropDownDataSource
をディレクトリからapp_code
別のアセンブリに移動しました- クラスの名前空間を変更しましたが
com.companyname.ie
、今com.companyname.ie.appname
ページにアクセスすると、「'TitleDataSource' の TypeName で指定された型が見つかりませんでした」というエラー メッセージが表示されます。
でクラスの完全修飾名を指定することで、これを修正できますTypeName
。ただし、同じ名前空間を持つディレクティブを追加しても、エラーは解決されません。
<%
@import
app_code
また、コードを無駄に戻そうとしました。
Intellisense は、名前空間を指定しなくても Type を取得します。
それは大きな問題ではありませんが、非常に厄介です。助言がありますか?
c# - リフレクションとコレクションを使用して Object Rational データベースを文盲にする
C# について質問があります。
私は、実行時に動的に作成されたオブジェクトを、それらとそこのプロパティ/メソッドを反復処理することで表現できるようにする方法を探していました。これまでのところ、リフレクションと foreach を使用して、クラス プロパティを読み書きできませんでした。これは、データ グリッド ビューでさまざまなテーブルのすべてのレコードを表示することです。ただし、私が考える1つのアプローチは、オブジェクト合理的マッピングを使用して接続し、データセットにデータを入力してから、編集などのためにデータグリッドビューに表示できるようにすることです..
**編集:* クラスの実際の名前空間を反復処理する可能性があります。すべてのクラスは Table というクラスを継承するため、実行時にすべてのクラスを呼び出してデータベースからデータをフェッチする方法が必要だと思います*
私は今まで主にJavaプログラミングを行ってきたので、.NETにあまり慣れていないため、OOプログラミングの良い考えを持っているので、これで最善のアプローチを探しています.
前もって感謝します
c# - グリッドビューの行のようなテンプレート化されたコントロールに複雑なオブジェクトを手動でデータバインドするにはどうすればよいですか?
ここでデータバインディングの構文に苦労しています。たとえば、私はこのようなデータ構造を持っています -
この List Courses をバインドして、グリッドビューを手動で表示するようにするには、次のようにします。
グリッドの編集テンプレートを指定しているときに、Instructors のティーチング プロパティをバインドして、同じ行に ListBox を指定する方法を教えてください。構文がわかりません。
上記のコードは確かに機能しません:)。理想的には、コード ビハインドではなくマークアップでこれを行いたいと考えています。
c# - コントロールが宣言された順序で常にデータ ソース コントロールにバインドされる場合、
A) 以下の質問は、コントロールが常に宣言された順序でデータ ソース コントロールにバインドされるという仮定に基づいていますか? したがって、この例では、 SqlDataSource1 は SqlDataSource2 の前にデータ ソースに接続するため、lstCitiesにはGridView1の前に値が入力されます。その理由は、lstcitiesがGridView1の前に宣言されたからです。
B) その場合、ControlParameterがDropDownListから値を取得するのはいつですか? SqlDataSource1_Selected() イベント ハンドラーの後、SqlDataSource2_Selecting()イベントハンドラーの前だと思いますが、正確にはいつですか?
.aspx ページ:
ありがとう
編集:
ただし、ポストバックの場合、これらのパラメーターは、宣言されている順序で、ページの OnLoadComplete のビューステートから再度読み込まれます。
Q1 - ControlParameter がコントロール C のプロパティ C1 にバインドされていると仮定します。ポストバックでは、C の型に関係なく、また C の ViewState が無効になっている場合でも、ControlProperty は常に ViewState から C.C1 の値を取得できると思います。 ?!
Q2 - しかし、ページが初めて作成された場合、ControlParameter の値もビューステートから取得できないのはなぜですか? 結局、lstCities がデータ ソースからデータを取得した瞬間、lstCities.SelectedValue には値が設定されているのでしょうか。
ありがとう
2番目の編集:
返信が遅れて申し訳ありませんが、返信があったことに気づきませんでした。そして、私が行ったとき、私は3つの脳細胞を適切に機能させるために20分を費やしましたが、完全に成功したかどうかはわかりません
A) ControlParameter は C.C1 を評価し、C がバインドされた後に C.C1 の値を取得しますか?!
Q1 - ControlParameter は自身の状態のみを読み取り、変更されたかどうかを判断するためだけに使用します
A) したがって、ControlParameter は、バインディングが行われる前に (OnParameterChanged イベントを発生させるために) ViewState が変更されたかどうかをチェックします --> したがって、Page.OnLoadComplete 中に ViewState をチェックします。しかし、ControlParameter は ViewState が変更されたことをどのように認識しますか (最初のポストバックで認識されます)。結局のところ、ページが最初に作成されたときから、ControlParameter の ViewState は常にダーティとしてマークされるため、あるポストバックから別のポストバックまで、ControlParameter はその値がポストバック間で変更されたかどうかをどのように知るのでしょうか?
B) ControlParameter は、OnParameterChanged イベントを発生させるためだけに Viewstate が変更されたかどうかをチェックすると仮定します。しかし、なぜそのイベントの処理がそれほど重要なのでしょうか?
プロパティの評価が初めて発生するのは、Page.OnLoadComplete です。
プロパティの評価とは、ControlParameter が独自の ViewState をチェックしていることを意味しますか? したがって、C.C1 を評価する ControlParameter を意味するわけではありません (C がバインドされた後に発生すると想定しています)。
私は本当にあなたの助けに感謝します
3番目の編集:
またお時間を頂戴してしまい、誠に申し訳ございません。これが最後の編集となるよう最善を尽くします。
Update() は、OnLoadComplete とデータ バインディングの両方で呼び出されます。Update() 内では、次の文も実行されます。
したがって、データバインディングが行われるときに Update() が呼び出されると、次のポストバックで OnLoadComplete で UpDate() が呼び出されたときに、C.C1 と ControlParameter はすでに同じ値を持っていることを意味します。
OnLoadComplete で Update() が呼び出された場合) は常に false を返すため、OnParameterChanged イベントは決して発生しませんか?1 その場合、OnLoadComplete で Update() を呼び出す必要があることがわかりません!
とても感謝しております
asp.net - FormViewConvertEmptyStringToNullとバインディング
ObjectDataSourceでFormViewを使用し、<%#Bind( "WhateverProp")%>を使用してバインドしています。すべてのnull許容列は、そのタイプのデフォルト値で返されます。
他のバインディングコンテナのように、FormViewオブジェクトにはConvertEmtpyStringToNullプロパティがないようです。これがVS2005/ .Net 2.0のバグであることを示唆する記事を見つけましたが、解決策が何であるかについては何も述べていません。
ODS_Insertingイベントのすべてのフィールドを再キャプチャすることなく、これを回避する方法について誰かが提案を持っていますか?nullをテストするためだけに、フォーム上のすべてのバインドされたフィールドを再バインドするコードを記述する必要はありません。