Ajax加载面板(外观与造型)

1.控制 RadAjaxLoadingPanel 的外观

1)RadAjax的主要视觉方面是在启用 AJAX 的控件更新时显示的RadAjaxLoadingPanel。可以通过以下方法控制 RadAjaxLoadingPanel 的外观

  • 修改标签内的<telerik:RadAjaxLoadingPanel> </telerik:RadAjaxLoadingPanel>标记。

  • 更改加载面板中显示的图像。RadAjax附带了许多预定义的动画“gif”图像。为此,您将<src>标记路径更改为安装目录中的 gif 之一:“\Telerik\RadControls for ASP.NET AJAXsuiteversion\Skins\Default\Ajax”

  • RadAjaxLoadingPanel继承自System.Web.UI.Panel,并提供背景颜色、字体和其他属性的属性。实际上,大多数开发人员通常使用标记和加载图像来设置加载面板的样式,但您也可以使用这些面板属性。

带有 RadLoadingPanel 的图像和文本的自定义外观 :

//背景颜色,边框颜色,边缘风格:点线,边框宽度
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" BackColor="Honeydew"
    BorderColor="Green" BorderStyle="Dotted" BorderWidth="3px" ForeColor="Blue" MinDisplayTime="1000">
     <img alt="Loading..." src="loading3.gif" style="border: 0px;" />
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</telerik:RadAjaxLoadingPanel>

2)RadAjaxLoadingPanelBackgroundTransparency属性更改了 DIV 元素的不透明度,该元素包含加载面板的背景,而不会影响加载图像。默认情况下它为 0(或空),在这种情况下,不呈现内联不透明度样式。接下来的几个代码片段显示了TransparencyBackgroundTransparency属性与呈现的 html 之间的差异。

<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" Skin="Default"
Transparency="" BackgroundTransparency=""></telerik:RadAjaxLoadingPanel>

//未进行任何限定
<div class="RadAjax RadAjax_Default" id="RadAjaxLoadingPanel1Button1">
<div class="raDiv">
</div>
<div class="raColor raTransp">
</div>
</div>

//使用Transparency="30"时,HTML 将是:
<div style="opacity: 0.7;" class="RadAjax RadAjax_Default" id="Div1">
<div class="raDiv">
</div>
<div class="raColor raTransp">
</div>
</div>

//使用BackgroundTransparency="40" HTML 将是:
<div class="RadAjax RadAjax_Default" id="Div2">
<div class="raDiv">
</div>
<div class="raColor raTransp" style="opacity: 0.6;">
</div>
</div>

//使用Transparency="30"和BackgroundTransparency="40",HTML 将是:
<div style="opacity: 0.7;" class="RadAjax RadAjax_Default" id="Div3">
<div class="raDiv">
</div><div class="raColor raTransp" style="opacity: 0.6;">
</div>
</div>

2.UpdatePanelCssClass 属性

对于RadAjaxManager,可以将UpdatePanelCssClass添加到每个AjaxSetting的 UpdatedControls 部分内的AjaxUpdatedControl。提供的字符串用作UpdatePanel 的CssClass ,它将在呈现期间包装AjaxUpdatedControl

因此,UpdatePanel 的CssClass属性在输出 HTML 中呈现为类属性。此外,RadAjaxPanel被添加到UpdatePanel的CssClass中。因此,如果用户为UpdatePanelCssClass设置MyClass,则呈现的 div 中的结果将变为class=RadAjaxPanel MyClass

        <%-- UpdatePanel写法一 --%>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                    <telerik:AjaxSetting AjaxControlID="Button1">
                        <UpdatedControls>
                            <telerik:AjaxUpdatedControl ControlID="Button1" UpdatePanelCssClass="updatePanelClassName" />
                        </UpdatedControls>
                    </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <asp:Button runat="server" ID="Button1" />

        <%-- UpdatePanel写法二 --%>
        <div id="RadAjaxManager1SU" style="display: none;">
            <span id="Span1" style="display: none;"></span>
        </div>

        <div id="Button1Panel" class="RadAjaxPanel updatePanelClassName" style="display: block;">
            <input id="Button1" type="button" onclick="javascript: **doPostBack('Button1', '')" value="" name="Button1" />
        </div>

对于RadAjaxPanelCssClass属性应用于内部 div,其 ID 与RadAjaxPanelClientID相同。UpdatePanelCssClass适用于包装RadAjaxPanel的UpdatePanel 。

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" CssClass="PanelCssClass" UpdatePanelCssClass="updatePanelClassName">
    <asp:Button runat="server" ID="Button1" />
</telerik:RadAjaxPanel>

<div id="ctl03Panel" class="RadAjaxPanel updatePanelClassName" style="display: block;">
    <div id="ctl03" class="PanelCssClass">
     <input id="Button1" type="button" onclick="javascript: **doPostBack('Button1', '')" value="" name="Button1">
    </div>
</div>

3.HTML 输出

设置 RadAjaxLoadingPanel 的 Skin 属性后,其 HTML 输出如下:

<div class="RadAjax RadAjax_Sunset">
<div class="raDiv raTopLeft">
</div>
<div class="raColor raTransp">
</div>
</div>

三种要素:

  • div.RadAjax.RadAjax_SkinName - 这是加载面板包装器,其中包含皮肤名称(例如 Sunset)

  • div.raDiv - 这是包含动画加载图像的元素。背景图像的位置由第二个 CSS 类(raTop、raTopLeft、raTopRight、raLeft、raRight、raBottom、raBottomLeft、raBottomRight、raNone)确定。第二个 CSS 类取决于 RadAjaxLoadingPanel 的BackgroundPosition属性。如果 BackgroundPosition="None" 会出现 raNone 类并删除背景图像。如果没有第二个 CSS 类,则背景图像居中(默认为 BackgroundPosition="Center")。

  • div.raColor - 这是保存加载面板背景颜色的元素。如果应用了 raTransp CSS 类,这个 div 可以是半透明的。此 CSS 类的存在由控件的EnableSkinTransparency属性(默认为“true”)确定。

两个内部 div(raDiv 和 raColor)是 100% 的宽和高,因此它们填充了包装器元素。raDiv 元素始终位于 raColor 元素之上。为了实现这一点,raColor 是绝对定位的,z-index 为 1,而 raDiv 是相对定位,z-index 为 2(相对定位只需要 z-index 样式起作用)。使用两个元素的好处是背景颜色可以是半透明的,而背景图像是完全不透明的(除非设置了Transparency属性,在使用Skin时不需要该属性)。

典型的 RadAjaxLoadingPanel 皮肤仅包含 3 个 CSS 规则 - 一个用于背景图像,一个用于背景颜色,一个用于皮肤透明度。 

.RadAjax_SkinName .raDiv 
{ 
  background-image:url(............); 
} 
.RadAjax_SkinName .raColor 
{ 
  background-color:........; 
} 
.RadAjax_SkinName .raTransp 
{ 
  opacity:0.7;
  -moz-opacity:0.7; 
  filter:alpha(opacity=70); 
}

opacity CSS 属性是 CSS3 规范的一部分,仅由支持它的浏览器应用。-moz-opacity针对较旧的基于 Gecko 的浏览器,而专有的过滤器属性针对 IE。请注意,虽然 opacity 是介于 0 和 1 之间的数字,但 IE 的过滤器不透明度应乘以 100。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值