PDA

View Full Version : مشکل در استفاده از متد FindControl



A.S.Roma
یک شنبه 19 مهر 1388, 17:05 عصر
با سلام

من یک کنترل LoginView دارم که Template آن را خودم نوشتم . حالا در CodeBehind می خواهم به یکی از Label های آن دسترسی داشته باشم . اینو نوشتم اما Label را پیدا نمی کند . ( فقط lView مقدار می گیرد. )
Label lbl = new Label();
LoginView lView = new LoginView();
lView = (LoginView)login1.FindControl("loginView1");

lbl = (Label)lView.FindControl("lblSum");

A.S.Roma
سه شنبه 21 مهر 1388, 11:04 صبح
یکی نیست مشکل ما رو حل کنه !؟

Alireza Orumand
سه شنبه 21 مهر 1388, 15:33 عصر
سلام
اگر دقت کرده باشید کنترل LoginViewبه تنهایی کار نمیکنه. یعنی باید داخل اون از Template ها استفاده کنید. مثل AnonymousTemplate یا LoggedInTemplate.
حالا کدی که شما نوشتید در سطح اول به دنبال کنترلی مثل لیبل میگرده. در صورتی که کنترل های سطح اول Templateهستن.
نتیجه اینکه شما باید با در سطح اول Templateمورد نظر خورت رو پیدا کنی و بعد داخل اون مجددا دنبال کنترل مورد نظرت بگردی.
برای مثال اگر یک LoginView داشته باشی که یک Template داخل اون هست و Lable داخل اون قرار داره باید بنویسید


LoginView1.Controls[0].FindControl("loginView1")

موفق باشید.