Проблемы с использованием «#» для идентификации тегов в комбинации главной / контентной / CSS-страницы - PullRequest
0 голосов
/ 09 августа 2010

Я хочу разделить дизайн и реализацию моих веб-страниц на отдельные файлы HTML и CSS (для упрощения обслуживания).

У меня есть следующая страница, определенная в проекте.

<%@ Page Title="" Language="C#" MasterPageFile="~/STGGeneral.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="SystemManager.Register" %>

И это делает ссылку на следующий файл CSS

#UsernameLabel
{
    position: absolute; 
    top: 10px; 
    left: 10px;
}

Проблема в том, что ASP.NET генерирует код, отправленный в браузер, и отправляет следующее

   <!-- Login Popup -->
   <input type="image" name="ctl00$LoginButton" id="ctl00_LoginButton" class="LoginButton" src="Images/key.png" style="border-width:0px;" />

   <div id="ctl00_LoginFormPanel" class="LoginPanel">   
        <div id="ctl00_UpdatePanel1">                           
                <span id="ctl00_LabelUsername">UserId:</span>
                <input name="ctl00$UsernameTextBox" type="text" id="ctl00_UsernameTextBox" />            
                <span id="ctl00_LabelPassword" class="StandardLabel">Label</span>
                <input name="ctl00$PasswordTextBox" type="text" id="ctl00_PasswordTextBox" />
                <input type="image" name="ctl00$ConfirmLoginButton" id="ctl00_ConfirmLoginButton" class="ConfirmLoginButton" UseSubmitBehavior="false" src="Images/Security.png" style="border-width:0px;" />                
        </div>
   </div>

Поскольку в ASP.NET мой ярлык «Имя пользователя» теперь называется ctl00_LabelUsername, стиль, который позиционирует этот код, работает дольше.

Есть ли способ сообщить ASP.NET, что я не хочу, чтобы он менял имя моих объектов, или как вы делаете ссылку, используя '#' на странице, созданной комбинацией главной страницы / страницы содержимого.

Ответы [ 3 ]

2 голосов
/ 09 августа 2010

Если вы используете .NET 4.0, для этого они добавили ClientIDMode

http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx

1 голос
/ 09 августа 2010

Если вы не используете ASP.NET 4.0, вы можете назначить класс метке, например

LabelUsername.CSSClass = "LabelClass";

иначе вы можете попробовать использовать селектор CSS, как-

.LoginPanel span
{
  // CSS Propeties for the label.
}
0 голосов
/ 09 августа 2010

Довольно просто.Вы измените свой CSS на ссылку ctl00_LabelUsername

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