ASP.NET 2.0 добавляет стили динамично к странице в управлении

Есть несколько способов сделать то, что вы пытаетесь сделать, как уже упоминали другие. Но правильный способ сделать конкретный способ, который вы упомянули, заключается в использовании prevState, поскольку this.state ненадежен (потому что он асинхронный).

Вот рабочие примеры:

this.setState((prevState, props) => ({
  some: {
    ...prevState.some,
    z: {
      ...prevState.some.z,
      a: 1111
    }
  }
}))

Отличное объяснение: https://teamtreehouse.com/community/react-docs-now-recomlies-using-function-with -prevstate-inside-of-settate

blockquote>

6
задан user53794 25 February 2009 в 07:47
поделиться

2 ответа

Я предполагаю, что это не плохое решение для проблемы. Если у Вас был внешний файл таблицы стилей, эта часть кода сделает работу:

HtmlLink cssRef = new HtmlLink();
cssRef.Href = "styles/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);

Другая идея состоит в том, чтобы записать Ваш собственный ASP.NET ServerControl "HtmlInlineStyle", таким образом, Вы могли назвать это этим путем (теги script будут сделаны Вашим управлением сервером):

Page.Header.Controls.Add(
   New HtmlInlineStyle(".xyz { width:300px;padding-left:10px }");

Эта запись в блоге и комментарии показывают некоторые альтернативы (ScriptManager. RegisterClientScriptBlock). Но по-моему Ваше решение хорошо.

3
ответ дан 17 December 2019 в 07:09
поделиться

Вот иначе... Например:

Родительская часть ASPX:

<div id="div1" class="xyz" style="width: 40px; height: 40px;">
    <span>abc</span>
</div>

В рамках управления:

Dim xyzStyle As New Style()
xyzStyle.CssClass = "xyz"
xyzStyle.BackColor = Drawing.Color.LightBlue
Page.Header.StyleSheet.CreateStyleRule(xyzStyle, Nothing, ".xyz")

Обратите внимание, что это предполагает, что родительская страница ASPX имеет набор атрибута класса для целевого управления. В противном случае затем необходимо будет объединить стиль с управлением с помощью метода MergeStyle. (Это требует, чтобы управление было runat="server").

Этот код представляет следующий вывод: (Показ всего источника для Вашего удобства)

<html>
<head>
  <title>Untitled Page </title>
  <style type="text/css">
    .xyz { background-color:LightBlue; }
  </style>
</head>
<body>
  <form name="form1" method="post" action="MyPage.aspx" id="form1">
    <div id="div1" class="xyz" style="width: 40px; height: 40px;">
      <span>abc</span>
    </div>
  </form>
</body>
</html>
1
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: