2015-09-11 3 views
0

У меня есть проект Visual Studio, в котором я создал Visual Webpart. В пользовательском управлении у меня есть панель, которую я хочу отобразить в режиме редактирования и скрыть в режиме просмотра.Показать/скрыть управление в Webpart на основе режима редактирования/просмотра

ASP.NET фрагмент кода:

<asp:panel runat="server" ID="myControl"> 

C# фрагмент кода в код управления пользователя за:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 
    WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(this.Page); 
    if (wpm.DisplayMode == WebPartManager.BrowseDisplayMode) 
    { 
     myControl.Attributes.Add("style", "display: none"); 
    } 
    else if (wpm.DisplayMode == WebPartManager.EditDisplayMode) 
    { 
     myControl.Attributes.Add("style", "display: block"); 
    } 
} 

Это работает, но если у меня есть два же WebParts на же странице и поместить один веб-сайт в режим редактирования, он показывает панель в обоих веб-страницах. Кажется, что код событий OnPreRender работает для обоих веб-страниц на странице.

Я даже пытался написать код как this.myControl.Attributes.Add("style", "display: block");, но он все еще не работал.

Я хочу, чтобы код OnPreRender запускался только на его веб-части и не изменял другой webaprt на странице. Как я могу это решить? Есть ли лучший (или предпочтительный) способ сделать это?

ПРИМЕЧАНИЕ: Мне нужно использовать display: none, потому что с панелью будет доступен JavaScript.

PS: Это перекрестный столб от here, так как я не получил удовлетворительных ответов.

ответ

0

я сделать то же самое на странице загрузки, и это работает для меня просто отлично .. (страница имеет около 10 WP и только 1 ведет себя по-разному в режиме редактирования.)

Может быть то, что вы имеете в виду, что вы есть 2 ТАКИЕ веб-страницы на странице? Тогда я думаю, что оба веб-сайта будут вести себя одинаково, потому что WebPartManager.DisplayMode возвращает вам режим страницы, а не веб-страницу. (см. msdn).

+0

возможно wpm.SelectedWebPart и помогите как-нибудь. – AndreyBizin

+0

Да. Я имею в виду SAME Web. – Naveen

Смежные вопросы