انجمن‌هاي فارس وب

نسخه کامل: پاک کردن تماما TextBoxها
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
سلام
من میخوام بانوشتن کد زیر ،محتویات تمام textBox های فرمم را پاک کنم
ولی اصلا کار نمیکنه.چرا؟

protected void Button2_Click(object sender, EventArgs e)
    {
        foreach (Control c in this.Controls)
        {
            if (c is TextBox)
            {
                TextBox f = (TextBox)c;
                f.Text = " ";

            }
        }              
    }

این کد کاملا برای من کار می کنه ... کدتون رو هم چک کردم مشکلی نداره ..
می خوای پروژتو بفرست شاید موردی داره .. ولی این کد به درستی کار می کنه ....
برای منم کار میکنه ولی فقط تو محیط win App
اگه پروژم تحت وب باشه ،کار نمیکنه!
یکی از دوستان در سایت برنامه نویس مشکل بنده را حل کردند:

private void ClearControls(ControlCollection col)
    {
        foreach (Control c in col)
        {
            if (c.GetType() == typeof(TextBox))
            {
                TextBox f = (TextBox)c;
                f.Text = " ";
            }
            if (c.Controls.Count > 0)
                ClearControls(c.Controls);
        }
    }

و به این صورت روی کلیک دکمه‌تان صدایش بزنید:

ClearControls(this.Controls);


ایشنون گفتن به این دلیل باید Recursive باشه چون کنترل‌ها تو در تو هستن.مثلاً شما یک Page دارین، توی اون یک ContentPlaceHolder هست، توی اون دو تا Panel هست، توی Panel اول ممکنه سه تا Panel باشه و توی هر کدوم چند کنترل TextBox.

ممنون که نتیجه و جواب مشکلتون رو در اختیار ما هم گذاشتید ...
مرجع آدرس ها