Show/Hide RadAjaxLoadingPanel explicitly

本文介绍了一个使用Telerik控件实现的Ajax加载面板显示和隐藏的方法。通过JavaScript代码和服务器控件结合,可以在页面局部更新时显示加载提示,并在更新完成后隐藏。此方案适用于需要改善用户体验的Web应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.telerik.com/help/aspnet-ajax/ajax-show-hide-loadingpanel.html

JavaScript

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        var currentLoadingPanel = null;
        var currentUpdatedControl = null;
        function RequestStart(sender, args) {
            currentLoadingPanel = $find("<%= RadAjaxLoadingPanel1.ClientID %>");

            if (args.get_eventTarget() == "<%= Button1.UniqueID %>") {
                currentUpdatedControl = "<%= Panel1.ClientID %>";
            }
            else {
                currentUpdatedControl = "<%= Panel2.ClientID %>";
            }
            //show the loading panel over the updated control
            currentLoadingPanel.show(currentUpdatedControl);
        }
        function ResponseEnd() {
            //hide the loading panel and clean up the global variables
            if (currentLoadingPanel != null)
                currentLoadingPanel.hide(currentUpdatedControl);
            currentUpdatedControl = null;
            currentLoadingPanel = null;
        }
    </script>
</telerik:RadCodeBlock>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Button1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="LoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="Panel2" LoadingPanelID="LoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
    <ClientEvents OnRequestStart="RequestStart" OnResponseEnd="ResponseEnd" />
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<asp:Button ID="Button1" runat="server" Text="Postback" OnClick="Button1_Click" />
<asp:Panel ID="Panel1" runat="server" Width="200px">
    Panel 1
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" Width="200px">
    Panel 2
</asp:Panel>
ASPX
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Button1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="LoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="Panel2" LoadingPanelID="LoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
    <ClientEvents OnRequestStart="RequestStart" OnResponseEnd="ResponseEnd" />
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<asp:Button ID="Button1" runat="server" Text="Postback" OnClick="Button1_Click" />
<asp:Panel ID="Panel1" runat="server" Width="200px">
    Panel 1
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" Width="200px">
    Panel 2
</asp:Panel>


这句话是对使用 MyBatis 或 Liquibase 迁移数据库过程中可能出现的一个警告说明。当你尝试通过修改字段的数据类型(即 `modifyDataType` 操作)时,由于 MySQL 的 SQL 局限性,可能会导致主键、自增属性 (`AUTO_INCREMENT`)、非空约束 (`NOT NULL`) 和注释 (`COMMENT`) 等显式定义的设置丢失。 ### 具体原因解析 在 MySQL 中,直接更改列的数据类型可能导致该列原有的附加配置被清空或覆盖掉。例如: - 主键(Primary Key) - 自动递增(Auto Increment) - 非空约束(Not Null Constraint) - 字段级注释(Column Comment) 这是因为某些数据库管理系统(DBMS)并不支持完全保留原有特性的同时对数据类型的更新操作。 ### 解决方案建议 为了避免上述问题发生,官方推荐两种替代方法: #### 方法一:使用 `<sql>` 标签手动编写完整的SQL语句 你可以明确指定所有的必要特性,包括但不限于 PRIMARY KEY、AUTO_INCREMENT 及 NOT NULL 约束等。 示例代码片段: ```xml <changeSet id="example-change" author="yourname"> <sql> ALTER TABLE your_table MODIFY COLUMN your_column INT AUTO_INCREMENT COMMENT 'Your comment'; </sql> </changeSet> ``` #### 方法二:结合 `<modifySql>` 实现定制化调整 Liquibase 提供了一个灵活的方式来进行特定数据库环境下的迁移脚本改造——那就是 `<modifySql>` 节点。允许开发者针对不同 DBMS 添加额外 SQL 片段来满足需求。 示例代码片段: ```xml <changeSet id="custom-modification" author="authorName"> <modifyColumn tableName="table_name" columnName="column_name" columnDataType="BIGINT"/> <modifySql dbms="mysql"> <![CDATA[ ADD CONSTRAINT pk_your_primary_key PRIMARY KEY (id), CHANGE id id BIGINT AUTO_INCREMENT, MODIFY some_other_field VARCHAR(255) NOT NULL COMMENT='Field description' ]]> </modifySql> </changeSet> ``` 以上两个策略都可以帮助你在面对类似挑战的时候保持表结构完整性和功能性不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值