.NET Tips

カスタムコントロールのプロパティの型をコントロールにしたい時に必要なTypeConverterの実装

以前に、.NET Framework1.1を利用している時に下記のエントリをしました。 カスタムコントロールのプロパティの型をコントロールにしたい時に必要なTypeConverterの抽象クラスです。各、コントロール毎にTypeConverterを一から作るのはめんどくさいので、抽…

型付データセットを使うことで複雑なSQLはコードの外に追い出す

私のシステム設計の指針は複雑度の分散です。 だからコードの中に複雑なクエリは書きません。 問い合わせのクエリは、何らかの目的があって発行するものなので、JOIN等複数のテーブルが絡む複雑なクエリは、すべてRDBMS側にViewとして持つようにしています。…

オブジェクトのDeserialize時に処理を付加したい場合

System.Runtime.Serialization.IDeserializationCallbackインタフェースを実装し、 OnDeserializationメソッド内で処理を付加します。 私の場合、 DataViewのフィルタ情報がシリアライズ時に保持されないので、 シリアライズ前に別変数に保持しておきます。 …

「[IE] Input type = file 属性の入力フォームにて submit を行っても Web サーバーから反応がない」の回避方法

IE6 (XP SP2)以降からの仕様で、[IE] Input type = file 属性の入力フォームにて submit を行っても Web サーバーから反応がない http://support.microsoft.com/default.aspx?scid=kb;ja;890981というのがあり、存在しないファイル名や、相対パスを入力した…

DataRelationとDataColumn.Expressionプロパティを利用したグループ化処理のサンプル

DBからすでにデータを持ってきた子テーブルという名前のDataTableがある前提(サンプルではねつ造している。) 番号でグルーピングして、数量計を取りたい。 001 Dim 子テーブル As New DataTable 002 子テーブル.Columns.Add(New DataColumn("番号")) 003 子…

バージョンは1.1:カスタムコントロールのプロパティの型をコントロールにしたい時に必要なTypeConverterの抽象クラス

カスタムコントロールのプロパティの型をコントロールにしたい時に必要なTypeConverterの抽象クラスです。 各、コントロール毎にTypeConverterを一から作るのはめんどくさいので、抽象クラスを作っておいて、継承先で型を指定するプロパティをオーバライドす…

URLEncodeしたページにアクセスした後、ポストバックする時はURLEncodeされていないURLでアクセスしてしまうのを回避する(検証はASP.NET1.1)

URLに日本語を利用していて、 URLEncodeしてwebフォームにアクセスしても、 そのままだとレンダリングされたformタグのaction属性が、 デコードされたURLになっている。 そのため、ポストバック時にアクセスするURLはEncodeされていない。 それを回避するに…

再改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法(ターゲットはASP.NET1.1です。)

■[ASP.NET][.NET Tips]改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法 ■[ASP.NET][.NET Tips]過去のサンプルの修正DataGrid内のラジオボタンでグループに出来ない問題の回避方法 NAL-6295の舌先三寸 - つまらない事の中に重要な事があ…

改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法

既に http://d.hatena.ne.jp/NAL-6295/20060726 にて再度改訂済みです。 ■[ASP.NET][.NET Tips]過去のサンプルの修正DataGrid内のラジオボタンでグループに出来ない問題の回避方法 というエントリで公開していたソースでは テキスト部分をクリックすると最後…

過去のサンプルの修正(DataGrid内のラジオボタンでグループに出来ない問題の回避方法)

注意: http://d.hatena.ne.jp/NAL-6295/20060726 にて再度改訂済みです 表題の通りですが、RadioButtonコントロールを継承して、以下のコードを書くとグループ化できるし、ポストバック時にCheckedプロパティも正常に動作します。 というエントリで掲載した…

設定ファイルとしての型付データセット

開発現場で利用するコーディングの手間を軽減したり、 調査を軽減したりするツールを作る事がたまにある。 固定長ファイルのリーダ・ライタだったり、 エクセルファイル出力クラスだったり。 例えば、固定長ファイルの場合は、 項目の開始位置や桁数、変換形…

C#における私のif文の書き方(二つの値を比較する場合)

C,C++,C#とif文で二つの値を比較する時に、イコールを表す時は==と等号を二つ並べる必要がある。 過去に、いろんな言語を行き来しているとうっかり、等号を一つにしてしまう事があった。 そこで、ここ数年は不等号ベースでif文を書くようにしている。 つまり…

DefaultViewに設定のあるDataTableをSessionに追加してもポストバック時にはDefaultViewが消えている。

まぁ、タイトルのままなんですが、過去に上記の現象に遭遇しまして、そういう挙動だという事を知らなかった為に原因調査に時間がかかってしまったので、一応掲載しておきます。#ツッコミ歓迎

DataTableをDataSetに追加した瞬間DefaultViewの内容が消える

例えば・・・dim ds as New DataSet() Dim dt As New DataTable("TEST") 'ここから省略 dt.DefaultView.Sort = "項目1"ds.Tables.Add(dt)といったコードを書いた時ds.Tables.Add(dt)の直後にDefaultView.Sortを参照すると、設定した内容が消えている。

DataGrid内のラジオボタンでグループに出来ない問題の回避方法

表題の通りですが、 RadioButtonコントロールを継承して、以下のコードを書くと グループ化できるし、ポストバック時にCheckedプロパティも 正常に動作します。 001 <DefaultProperty("Checked"), ToolboxData("<{0}:RadioButtonEx runat=server></{0}:RadioButtonEx>")> _ 002 Public Class RadioButtonEx 003 Inherits System.Web.UI.WebControls.RadioButt…

参照型にrefキーワードがついている時とついていない時の違い

メソッドを定義するときに、refキーワードを参照型に付けたときと付けなかったときの違いは、簡単に言えば・・・ ・ref付きは参照する場所を変更出来る。 ・ref無しは参照する場所を変更出来ない。 ・両方とも、参照先のオブジェクトが持った値を変更する事…

続・CSSクラスの動的切り替え

昨日書いたCSSクラスをonFocusとonBlurで切り替えたいと思っていた件が解決した。 というか、僕が馬鹿だった。 普通に obj.className="クラス名" で切り替えられた。 これで、全部CSSに出来るなぁ・・・。 ASP.NET用拡張テキストボックスも実装を変更しよう…

CSSクラスの動的切り替え

onFocusとかonBlurとかイベント発生時にCSSの各要素を変更することが可能なことは知っているのだが、ならばいっそクラス名指定で切り替えさせて欲しいなんて思う。 いろいろと調べたり試したりしてるけれど、いまいち、できるのかできないのかもわからない。…

コントロールコレクションから指定したコントロールのみ取得したい

コントロールコレクションから指定したコントロールのみ取得したい時、通常FindControlを使用するが、型指定で取得したい時は下記のようにしています。 VB.NETで記述してあります。 001 '[WebForms] 002 Public Shared Function GetControl(ByVal Parent As …

所有する子コントロール群のEnable/Disableをまとめて変更する

ASP.NETで、WebフォームであるPanelを利用した時は、PanelのEnabled=falseでPanelが保有するコントロールも使用不可になる。 だが、Tableをサーバサイドで利用するようにして、Disabled=Trueにしても子コントロールは使用不可表示になるが使用できてしまう。…

コントロールコレクションから特定タイプのコントロール群を再帰的に抽出する。

コントロールが所有するコレクションから指定した型のコントロール群を取得するロジックです。 Parentにコントロール群を所有するコントロールを渡し,typeに取得したいコントロールの型情報を渡します。 戻り値は、取得した結果でObject配列になっています。…