2012-07-04 5 views
0

Я занимаюсь разработкой своего веб-приложения ASP.NET с помощью VS2010, C#. У меня есть пользовательский элемент управления, содержащийся на моей главной странице, и теперь я собираюсь получить доступ к моему usercontrol с страницы содержимого, возможно ли изменить пользовательский контроль через события на стороне клиента на странице содержимого? Я собираюсь, чтобы предотвратить любое PostbackASP.NET change masterpage usercontrol со страницы содержания

Я хочу, чтобы имитировать что-то вроде этого сайта:

http://www.just-eat.co.uk/restaurants-dialacrate-w13/menu 

, когда мои клиенты нажимают на продукты питания, продукты питания должны быть добавлены к моей корзине заявки без постбэка, я думаю, он использует JavaScript, не так ли?

+1

, который JavaScript. Также возможны изменения пользовательских элементов управления. Но если это требуемая вами функциональность в URL-адресе, который вы нам дали, то вы должны начать вникать в javascript и jQuery. EDIT: Кстати, когда я встречаю сайты, которые меня интересуют, первое, что я делаю, это посмотреть источник! и попытайтесь учиться оттуда. Открываем файлы .js и исследуем и т. Д. –

+0

спасибо Emin, да, я знаю, что это JavaScript, у меня нет проблем с использованием JavaScript для динамического создания элементов управления в моем usercontrol, но я собираюсь узнать, как установить соединение между мои гиперссылки на содержание страницы и мой пользовательский контроль? как я могу получить доступ к usercontrol с моей страницы контента? это мой главный вопрос –

ответ

1

я говорю специфичны для URL вы дали в вашем вопросе: Если вы исследуете код, корзина часть в HTML части это:

<div id="divBasketHeaderContent"> 
    <h4> 
     <span id="ctl00_DesktopSideColumn_Basket_lblTxt">Your order</span> 
    </h4> 
</div> 

Тогда в комплекте bundle.js;

function updateBasket(n, t, i) { 
    document.getElementById("ctl00_DesktopSideColumn_Basket_modalProductId").value = n; 
    var r = n + "#" + t + "#" + i + "#"; 
    __doPostBack("ctl00_DesktopSideColumn_Basket_UpdatePanel1", r) 
} 

Таким образом, он использует обновленную палитру asp.net для обновления корзины. Хотя это нормально, это не рекомендуется, так как в фоновом режиме он отправляет всю страницу и возвращает много данных назад. See here, чтобы узнать, почему ..

Также в ссылке Encosia, которую я предоставил, вы увидит один из способов, как это делается правильно.

Вы можете использовать page methods, web services, plain ajax, или web api добиться того, что вам требуется ..

1

Вы можете использовать этот

YouControl uc = (YouControl)Page.Master.FindControl("yourcontrolID"); 

, чтобы получить доступ к UC помещается в вашей главной странице.

и используйте webservices/webmethods, чтобы сделать это без обратной передачи.

для получения дополнительной информации о веб-сервисов Go here

для получения дополнительной информации о WebMethods Go here

+0

спасибо, могу ли я использовать этот подход в функции JavaScript? т. е. можно ли написать функцию JS, которая выполняет эти действия? –

+0

Вы можете, но тогда было бы сложно поддерживать состояние этих элементов управления, потому что, когда вы используете код на стороне клиента для выполнения какого-либо действия, эти изменения не сохраняются при загрузке страниц. – yogi

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