gpt4 book ai didi

ASP.NET:从用户控件以编程方式创建新的 CSS 类?

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:02 26 4
gpt4 key购买 nike

我有一个 UserControl,其中包含这个 AJAX 模态弹出扩展程序:

<ajax:ModalPopupExtender ID="MPE" runat="server" 
TargetControlID="btnChangePassword" PopupControlID="pnlPasswordChanging"
BackgroundCssClass="modalBackground" DropShadow="true"
CancelControlID="btnCancel" OnCancelScript="ULC_ChangePw_CancelBtnClick();" />

这里没有什么特别的。问题来自 BackgroundCssClass 属性——它需要一个名为 modalBackground 的 CSS 类。不幸的是,我无法以在回发后仍然存在的方式从用户控件添加 CSS 类。

如果我将我的modalBackground 类添加到.ascx 页面:

<style type="text/css">
.modalBackground
{
background-color: #A1A1A1;
filter: alpha(opacity=70);
opacity: 0.7px;
}
</style>

...它会在首次加载时显示属性,但在后续回发后不会显示。当然,我可以在页面本身内定义 modalBackground,或者在用户控件调用的单独、独立的 CSS 文件中定义,但这两种解决方案都不适合我。

有没有办法以编程方式创建 CSS 类并将其添加到页面中?基本上,我正在寻找与 Javascript 的 RegisterClientScriptBlock 函数等效的 CSS:

Dim controlNameScript = String.Format("<script type='text/javascript'> var AppMenuName = '{0}' </script>", Me.ClientID)
Me.Page.ClientScript.RegisterClientScriptBlock(myType, "ControlName", controlNameScript)

谢谢!

最佳答案

如果 CSS 是在您的 .ASCX 文件中定义的,它应该每次都呈现,无论回发与否。除非控件本身设置为 Visible="false"。

一种解决方法是在控件的 asp:Literal block 中定义 CSS 代码。然后,您的控件可以公开一个公共(public)函数,该函数仅将文字的内容返回给调用者。如果主机要使您的控件不可见,他们可以使用该公共(public)函数获取 CSS 代码,并将其放置在页面的 head 部分。这样,无论控件的可见性设置如何,CSS 定义都应该始终存在。

从更大的 Angular 来看,Adam 是正确的:最好尽可能将 CSS 代码保存在 .CSS 文件中。

关于ASP.NET:从用户控件以编程方式创建新的 CSS 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com