0

ここでループを無駄にしていると感じている=CPU時間であり、このコードを最適化する方法があるのか​​、それとも最小化する方法があるのか​​疑問に思っていました。

基本的に、コードが行うことは、editOkkInfoコントロール内のすべてのコントロールを通過します。現在のコントロールがテキストボックスであるかどうかを確認し、はいの場合はいくつかの処理を実行し、いいえの場合は次のifステートメントにジャンプします。この次のステートメントは、14回カウントしたかどうかをチェックし(テキストボックスは14個しかないため)、14回カウントしなかった場合はループを続行し、14回カウントした場合はループが中断します。

事前に感謝します、そしてここにコードがあります、乾杯。

iterate = 0;
foreach (System.Web.UI.Control ctrl in this.editOkkInfo.Controls)
{
    if (ctrl is TextBox)
    {
        tb = (TextBox)this.FindControl(ctrl.ClientID.ToString());
        tb.Text = dt.DefaultView[0][iterate++].ToString();
    }
    if (iterate == 14)
       break;
}
4

5 に答える 5

1
if (ctrl is TextBox)
{
    tb = (TextBox)ctrl;
}

これで十分なはずです。あなたはそれを持っていることを知って、TextBoxusing を探しFindControlています。したがって、コントロールをキャストするだけですTextBox

于 2012-11-22T11:23:50.967 に答える
0

ループするのではなく、特定のタイプのすべてのコントロールを見つけるための 1 つの高速な方法を見てきました。これはより効率的なようです。 linqを使用して Web ページ内の特定のタイプの Web コントロールのリストを取得する

于 2012-11-22T11:43:34.833 に答える
-2

量が 14 になるまでしばらくの間すべてのコントロールをチェックしないので、代わりに foreach の方がしばらくは良いと思います (すべてのコントロールをチェックできるかどうかは依存します!)

于 2013-04-22T15:09:04.163 に答える