Определение пользовательского элемента управления для вызова на основе браузера - PullRequest
0 голосов
/ 13 октября 2009

В моем проекте ASP.Net есть два пользовательских элемента управления: один явно для использования с Internet Explorer 6 (IE6), а другой должен использоваться, когда браузер пользователя не IE6.

Как бы я настроил это так, чтобы это произошло; это что-то, что я могу разместить на главной странице?

Ответы [ 4 ]

2 голосов
/ 13 октября 2009

Перехватите заголовки запроса на странице code-behind вашего content.master, чтобы выяснить, какой браузер, и установите свойство Visible для элемента управления, который вы не хотите использовать, в false. Это предполагает, что эти два элемента управления размещены на самой главной странице. Если они появляются только на некоторых страницах, то вы можете сделать то же самое, но на этих отдельных страницах, а не на главной странице.

2 голосов
/ 13 октября 2009

Этого можно добиться, используя свойство Browser объекта HttpRequest .

На вашей странице могут быть оба пользовательских элемента управления, расположенные во время разработки, затем во время выполнения вы проверяете свойство Request.Browser, чтобы определить браузер клиента и программно скрыть пользовательский элемент управления, который пользователь не должен видеть .
Кроме того, вы можете создать экземпляр и отобразить правильный пользовательский элемент управления (опять же, после проверки свойства Request.Browser) исключительно из кода на стороне сервера.

Например, запустив следующий код:

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Request.Browser.Type.ToString());

    }
}

На «стандартной» странице ASPX отображаются:

IE7

при запуске в Internet Explorer 7 и:

Firefox3.5.3

(при запуске в Firefox)

Итак, на веб-странице вы могли бы написать что-то вроде следующего, к которому вы хотите добавить эту функциональность:

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Browser.Type.ToString().ToLower().Contains("ie"))
        {
            // User's browser is Internet Explorer.
            // Let's hide UserControl1 but display UserControl1
            WebUserControl1.Visible = false;
            WebUserControl2.Visible = true;
        }
        else
        {
            // User's browser is something other than Internet Explorer.
            // Let's hide UserControl2 but display UserControl1.
            WebUserControl1.Visible = true;
            WebUserControl2.Visible = false;
        }
    }
}
1 голос
/ 13 октября 2009

Чтобы получить браузер, вы можете использовать:

Response.Write(Request.Browser.Browser.ToString());
Response.Write(Request.Browser.Version.ToString());
0 голосов
/ 13 октября 2009

Вы можете использовать объект навигатора JavaScript. Оберните их в div и затем скройте или покажите их с помощью jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...