2011-10-27 2 views
1

IDに「DATE」という単語が含まれているページにいくつかのコントロールがあります。これらは日付のみの特定のテキストボックスです。ここでIDの特定の名前/パターンを持つすべてのコントロールにプロパティを追加する - ASP.NET(VB)

は、私はIDに "DATE" の各テキストボックスコントロールのために何をする必要があるかの例です:

誕生 _Date.Text = fnLib.formatDate(誕生 _DATE .text、1)

周年 _Date.Text = fnLib.formatDate(周年 _Date.Text、1)

各コントロールごとにこれを行うのではなく、For Each Loopのような方法でこれを行う方法がありますか?私はまだASP.Net(VB)の新人ですので、まだ学習しています。ありがとう

答えて

2

技術的には、このような擬似コードのループでこれを行うことができます。

foreach(Control currentControl in this.Controls) 
{ 
    var currentTextbox = currentControl as TextBox; 
    if(currentTextbox != null && currentTextbox.Id.EndsWith("_Date")) 
    //DO your stuff here 
} 

しかし、正直なところ、私は他のコントロールがたくさんある場合は特に、それは非常にあなたを得るために起こっているか分からない...これが最初のターゲットタイプに項目をキャストしようとしていたよう。あなたが失敗をたくさん持っている場合は、大きなパフォーマンスヒットになる可能性があります。

+0

IdがControlのプロパティであるため、キャストしようとする前にIdをテストすることで、パフォーマンスの低下を減らすことができます。また、コンテナコントロール(他のコントロールをホストできるコントロール)を考慮し、各コントロールのControlsコレクションを使用してこのメ​​ソッドを再帰的に実行する必要があります。 –

+0

competent_techは非常に有効なポイントです。 –

+0

@Mitchell Sellers - これはVBに変換できる可能性があります。私はC#に精通していないので、コンバータで実行しようとしましたが失敗します。ありがとう – James

関連する問題