PDA

View Full Version : دسترسی به کنترل در متد استاتیک



rahimi.mohamad24
جمعه 27 مرداد 1391, 17:17 عصر
سلام
من میخوام userControl را در یک متد استاتیک load کنم.که این متد یک webMethod است که توسط ajax فراخوانی میشود.
مشکل اینجاست که متد استاتیک ،کنترل Div که runat="server" iهم دارد نمیشناسد.
چطوری در متد استاتیک به کنترل div دسترسی داشته باشم؟

[WebMethod]
public static object LoadUserControl(string w)
{

if (w == "Contract")
{
using (Page page = new Page())
{
UserControls_ucContract userControl = (UserControls_ucContract)page.LoadControl("~/UserControls/ucContract.ascx");

//div.Controls.Add(userControl);
return userControl;

// return userControl;
}
}
return null;
}

na3er-faraji
جمعه 27 مرداد 1391, 17:25 عصر
این webmethod توسط ajax فراخوانی میشه و در سمت کلاینت ؟ درسته ؟
خوب جرا این کار رو با همون کدهای جاوااسکریپت انجام نمیدید؟ (یا jquery)

rahimi.mohamad24
جمعه 27 مرداد 1391, 17:58 عصر
این webmethod توسط ajax فراخوانی میشه و در سمت کلاینت ؟ درسته ؟بله

خوب جرا این کار رو با همون کدهای جاوااسکریپت انجام نمیدید؟منظورتونو متوجه نمیشم.چطوری میتونم یوزرکنترل را سمت کلاینت فراخوانی کنم؟
در واقع موضوع برنامه اینه که یه منو را در مسترپیج گذاشتم ،برحسب اینکه کاربر کدام گزینه منو را انتخاب کرده میخوام userControl مربوطه را لود کنم.
تو pageLoad مسترپیج یا حتی صفحه ای که از مسترپیج استفاده می کند، نمی تونم یوزر کنترل را فراخوانی کنم.چونکه بعد از اینکه کاربر روی منو کلیک کرد،مشخص میشود چه یوزر کنترلی باید لود شود.
پس وقتی کاربر روی منو کلیک کرد،تابع ajax فراخوانی میشود و پارامتر مربوطه که مشخص کننده نوع یوزر کنترل است را پاس میدهم.
از طرفی چون فرمم aspx است و باید از WEBMethod کنم ،که یک متد استاتیک باید باشد.
در داخل این متد،کد بالا را نوشتم ولی مشکلم اینجاست که به div که قرار است یوزر کنترل لود شود ،دسترسی ندارم ،چون متد استاتیک است.
از طرفی اگر بخواهم یوزرکنترل را هم به تابع ajax ،نال برمیگرداند(در succress)ا
آیا منظور شما این بود که در success در div مربوطه، یوزر کنترل را لود کنم.با null برگرداندن یوزرکنترل چه کنم؟/؟