Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击“保存”按钮时如何阻止我的网格?_Javascript_Jquery_Asp.net_Blockui - Fatal编程技术网

Javascript 单击“保存”按钮时如何阻止我的网格?

Javascript 单击“保存”按钮时如何阻止我的网格?,javascript,jquery,asp.net,blockui,Javascript,Jquery,Asp.net,Blockui,我找到了一个很好的例子来阻止我的网页的一部分 但我已经尝试了几个小时,试图使我的UserControl适应这个示例,但没有任何进展。可能是因为我还不太熟悉JQuery和ASP.Net。例如,我不明白什么是prm.add_beginRequest和prm.add_endRequest以及这个页面请求管理器是什么 所以我想问一下这里的专家,如果你能解决我的问题: 我有一个ASP.Net用户控件,上面有一个网格(telerik RadGrid)。在顶部我有一个保存按钮('btnSave')。单击按钮后

我找到了一个很好的例子来阻止我的网页的一部分

但我已经尝试了几个小时,试图使我的UserControl适应这个示例,但没有任何进展。可能是因为我还不太熟悉JQuery和ASP.Net。例如,我不明白什么是
prm.add_beginRequest
prm.add_endRequest
以及这个页面请求管理器是什么

所以我想问一下这里的专家,如果你能解决我的问题:

我有一个ASP.Net用户控件,上面有一个网格(telerik RadGrid)。在顶部我有一个保存按钮('btnSave')。单击按钮后,服务器将把数据保存到文件中。到现在为止,一直都还不错。但同时,我想用示例中的漂亮条来阻止这个网格

有谁能告诉我如何调整我的UserControl,以便在服务器准备就绪之前阻止网格(和按钮)

这是目前为止我的ExcelGrid.ascx文件:

<%@ Control Language="C#" AutoEventWireup="True" Codebehind="ExcelGrid.ascx.cs" className="ExcelGrid" Inherits="WebResourceEditor.UI.Main.RightContent.ExcelGrid" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<link href="/Styles/Styles.css" rel="Stylesheet" />
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        var radGridId = "<%=mainDataGrid.ClientID %>";
    </script>
</telerik:RadCodeBlock>
<style type="text/css">
    html body span .rinSingle .riTextBox .RadInput .RadInput_Default
    {
        width: 100% !important;
    }
</style>
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" />
<script src="/Scripts/script.js" type="text/javascript"></script>
<script src = "/Scripts/jquery.blockUI.js" type = "text/javascript"></script>
<telerik:RadScriptBlock runat="server" ID="RadScriptBlock2">
    <script type="text/javascript">

        function RowContextMenu(sender, eventArgs) {
            var menu = window.$find("<%=RadMenu1.ClientID %>");
            var evt = eventArgs.get_domEvent();
            var index = eventArgs.get_gridDataItem().get_element().id.split("__")[1];
            document.getElementById("<%=radGridClickedRowIndex.ClientID %>").value = index;
            sender.get_masterTableView().selectItem(sender.get_masterTableView().get_dataItems()[index].get_element(), true);
            menu.show(evt);
            evt.cancelBubble = true;
            evt.returnValue = false;
            if (evt.stopPropagation) {
                evt.stopPropagation();
                evt.preventDefault();
            }
        }

        function GridCreated(sender, args) {
            var scrollArea = sender.GridDataDiv;
            var parent = window.$get("gridContainer");
            var gridLabel = window.$get("gridLabel");
            var gridMenuBar = window.$get("gridMenuBar");
            var gridHeader = sender.GridHeaderDiv;
            scrollArea.style.height = parent.clientHeight - gridHeader.scrollHeight
                - gridMenuBar.scrollHeight - gridLabel.scrollHeight - 1 + "px";
        }

        function BlockUI(elementID) {
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(function () {
                $("#" + elementID).block({ message: '<table align = "center"><tr><td>' +
                        '<img src="/Images/loadingAnim.gif"/></td></tr></table>',
                    css: {},
                    overlayCSS: { backgroundColor: '#000000', opacity: 0.6, border: '3px solid #63B2EB'
                    }
                });
            });
            prm.add_endRequest(function () {
                $("#" + elementID).unblock();
            });
        }
        $(document).ready(function () {

            BlockUI("gridContainer");
            $.blockUI.defaults.css = {};
        });
    </script>
</telerik:RadScriptBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="mainDataGrid">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="mainDataGrid" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="RadMenu1"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="RadMenu1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="mainDataGrid" LoadingPanelID="RadAjaxLoadingPanel1">
                </telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="RadMenu1"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<asp:HiddenField ID="radGridClickedRowIndex" runat="server" />
<div id="gridContainer" style="height:100%;">
    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
    <div id="gridLabel">
        <asp:Label ID="fileNameTextEdit" style="padding: 2px 5px;" 
            Text="No Project Folder or Resource File Group selected" runat="server" />
        <br/>
    </div>
    <telerik:RadGrid ID="mainDataGrid" OnNeedDataSource="mainDataGrid_NeedDataSource" OnPreRender="RadGrid1_PreRender" 
        Skin="Default" OnItemDataBound="RadGrid1_ItemDataBound" OnColumnCreated="mainDataGrid_ColumnCreated" 
        AllowMultiRowEdit="true" EnableLinqExpressions="false"
        OnItemCommand="RadGrid1_ItemCommand"
        runat="server">
        <MasterTableView EditMode="InPlace" CommandItemDisplay="Top" 
            DataKeyNames="FileGroup,Name">
            <CommandItemTemplate>
                <div id="gridMenuBar" style="padding: 5px 5px;">
                    <asp:LinkButton ID="btnSave" runat="server" CommandName="Save">
                        <img style="border:0px;vertical-align:middle;" alt="" src="/Images/RightContent/popupImages/image01.png" />Save in Database</asp:LinkButton>&nbsp;&nbsp;
                    <asp:LinkButton ID="btnCancel" runat="server" OnClientClick="DiscardChanges(this, event);"
                        CommandName="Discard Changes">
                        <img style="border:0px;vertical-align:middle;" alt="" src="/Images/icons/16/image25.png" />Discard Changes</asp:LinkButton>&nbsp;&nbsp;
                </div>
            </CommandItemTemplate>
            <Columns>
                <telerik:GridBoundColumn DataField="Name" HeaderText="Name" ReadOnly="true" />
            </Columns>
        </MasterTableView>
        <ClientSettings>
            <Scrolling AllowScroll="true" ScrollHeight="500px" UseStaticHeaders="true" />
            <ClientEvents OnRowContextMenu="RowContextMenu"/>
            <ClientEvents OnGridCreated="GridCreated" />
        </ClientSettings>
    </telerik:RadGrid>
    </ContentTemplate> 
    </asp:UpdatePanel> 
</div>
<telerik:RadContextMenu ID="RadMenu1" runat="server" OnItemClick="RadMenu1_ItemClick"
    OnClientItemClicking="RadMenu1_ItemClicking" EnableRoundedCorners="true" EnableShadows="true"
    OnClientLoad="MenuLoad">
    <Items>
        <telerik:RadMenuItem Text="Save" AccessKey="S">
        </telerik:RadMenuItem>
        <telerik:RadMenuItem Text="Discard Changes" AccessKey="C">
        </telerik:RadMenuItem>
    </Items>
</telerik:RadContextMenu>

var radGridId=“”;
html正文span.rinSingle.riTextBox.RadInput.RadInput\u默认值
{
宽度:100%!重要;
}
函数行上下文菜单(发送方、事件参数){
变量菜单=窗口。$find(“”);
var evt=eventArgs.get_domEvent();
var index=eventArgs.get_gridDataItem().get_element().id.split(“uuu”)[1];
document.getElementById(“”).value=index;
sender.get_masterTableView().selectItem(sender.get_masterTableView().get_dataItems()[index].get_element(),true);
菜单显示(evt);
evt.cancelBubble=真;
evt.returnValue=false;
if(evt.stopPropagation){
evt.stopPropagation();
evt.preventDefault();
}
}
函数GridCreated(发送方,参数){
var scrollArea=sender.GridDataDiv;
var parent=window.$get(“gridContainer”);
var gridLabel=window.$get(“gridLabel”);
var gridMenuBar=window.$get(“gridMenuBar”);
var gridHeader=sender.GridHeaderDiv;
scrollArea.style.height=parent.clientHeight-gridHeader.scrollHeight
-gridMenuBar.scrollHeight-gridLabel.scrollHeight-1+“px”;
}
功能块UI(elementID){
var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(函数(){
$(“#”+elementID).block({消息:“”+
'',
css:{},
覆盖层:{背景颜色:'#000000',不透明度:0.6,边框:'3px实心#63B2EB'
}
});
});
prm.add_endRequest(函数(){
$(“#”+elementID).unblock();
});
}
$(文档).ready(函数(){
BlockUI(“网格容器”);
$.blockUI.defaults.css={};
});

保存在数据库中 放弃更改
如您所见,我使用的是Telerik控件。我用一个加载面板成功地屏蔽了我的网格。有关更多信息,请参阅。

是,Telerik具有显示加载面板的此类控件

此外,如果刷新数据的时间太少,则可能会看到闪烁

为了避免这种情况,您可以添加一个最小时间加载面板应使用“MinDisplayTime”显示,以毫秒为单位。

这可能对您有所帮助