Javascript 网格赢得';不要每次都刷新。我可以刷新整个窗口吗?
我如何在这里创建一个Javascript方法来重新加载.aspx页面,我可以在其他现有方法中调用它Javascript 网格赢得';不要每次都刷新。我可以刷新整个窗口吗?,javascript,asp.net-mvc,vb.net,extjs,Javascript,Asp.net Mvc,Vb.net,Extjs,我如何在这里创建一个Javascript方法来重新加载.aspx页面,我可以在其他现有方法中调用它 <%@ Page Language="VB" Inherits="Core.Web.BaseView(OfLending.Controllers.Workspace.DocumentUploadData)" %> <%@ Import Namespace="Framework.WebControls.Forms" %> <%@ Import N
<%@ Page Language="VB" Inherits="Core.Web.BaseView(OfLending.Controllers.Workspace.DocumentUploadData)" %>
<%@ Import Namespace="Framework.WebControls.Forms" %>
<%@ Import Namespace="Framework.WebControls.Grids" %>
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function RefreshGrid(result, data) {
if (data.responseText.length > 0) {
var obj = eval('(' + data.responseText + ')');
if (obj.Result == false) {
Global.alertError(obj.UserMessage, obj.ExceptionID);
}
else {
Global.getComponent('txtDescription').setValue('');
mygrid.refresh();
}
}
}
var uploadWindow
var showUploadWindow = function() {
if (!uploadWindow) {
uploadWindow = new Ext.Window({
title: 'Attach Document'
, width: 450
, height: 140
, closable: true
, closeAction: 'hide'
, iconCls: ''
, layout: 'form'
, bodyStyle: 'padding:10px 10px 0px 2px'
, labelWidth: 100
, labelAlign: 'right'
, renderTo: DocumentUploadForm_FormViewPort.getEl()
, constrain: true
, modal: true
, items: [{
xtype: 'textfield'
, validationEvent: 'blur'
, enableKeyEvents: true
, anchor: '100%'
, fieldLabel: '* Select File'
, labelStyle: 'color:red'
, el: 'fuDocument'
, id: 'fuDocument'
, allowBlank: false
, blankText: 'File Upload is a required field'
, inputType: 'file'
}, {
xtype: 'textfield'
, anchor: '100%'
, fieldLabel: 'Description'
, id: 'txtDescription'
, allowDecimals: false
, decimalPrecision: 0
, maxLength: 100
, maxLengthText: 'Description must be no more than 100 characters in length'
}]
, buttonAlign: 'center'
, fbar: [{
text: 'Save', iconCls: 'icon-button-save', handler: function() { uploadDocument() }
}, {
text: 'Cancel', iconCls: 'icon-button-cancel', handler: function() { uploadWindow.hide() }
}]
})
}
uploadWindow.show();
mapEnterKey(uploadWindow);
}
function viewContent() {
var docId = mygrid.getSelectedString('DocumentId');
window.location = "Edit/" + docId;
}
function uploadDocument() {
uploadWindow.hide();
DocumentUploadForm.doAction('SAVE')
mygrid.refresh();
}
//this function maps enter key
function mapEnterKey(obj) {
var keyMap = new Ext.KeyMap(obj.getEl(), {
key: Ext.EventObject.ENTER,
stopEvent: true,
handler: uploadDocument
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="display:none">
<asp:FileUpload ID="fuDocument" runat="server" />
</div>
<%
Using DocumentUploadForm As New WebControls.Forms.Form()
With DocumentUploadForm
.ID = "DocumentUploadForm"
.Framed = False
.ItemName = "Document"
.Title = "Application Documents"
.TitleStyle = Forms.Form.TitleStyleType.TitleBar
.IconCls = "icon-blank-16"
.OnSubmitCallback = "RefreshGrid"
.Toolbar.UseDefaultButtons = False
With .CenterRegion
Using mygrid As New WebControls.Grids.Grid()
With mygrid
.ID = "mygrid"
.GridItemName = "document"
.Title = "Uploaded Documents"
.Mode = Grid.GridMode.Tab
.OnDoubleClick = "viewContent"
.SetEditPage("Workspace/DocumentUpload.mvc", "DocumentId")
With .Toolbar
.AllowSearch = False
.UseDefaultButtons = False
With .AddButton("Attach Document", "function(){showUploadWindow();}")
.RequiresRowSelection = False
.IconClass = "icon-button-create"
End With
With .AddButton(Grids.Grid.GridToolbar.ButtonType.Edit)
.Text = "View Document"
.Handler = "viewContent"
.IconClass = "icon-button-preview"
End With
With .AddButton(Grids.Grid.GridToolbar.ButtonType.Delete)
.Text = "Delete Document"
End With
.PushItems()
With .AddButton("Close Window", "function(){window.close()}")
.RequiresRowSelection = False
.IconClass = "icon-button-cancel"
End With
End With
.Columns.AddHidden("DocumentId")
.Columns.Add("Name", "Name", Grid.ColumnDataType.String, 200)
.Columns.Add("Description", "Description", Grid.ColumnDataType.String, 450)
.DataSource = ViewData("Documents")
.DataBind()
Response.Write(.ToString())
End With
End Using
.AddControl("mygrid", "Documents", Forms.Control.ControlType.Grid)
End With
End With
Response.Write(DocumentUploadForm.ToString())
End Using
%>
</form>
</body>
</html>
函数刷新网格(结果、数据){
如果(data.responseText.length>0){
var obj=eval('('+data.responseText+'));
如果(obj.Result==false){
全局.alertError(obj.UserMessage,obj.ExceptionID);
}
否则{
Global.getComponent('txtDescription').setValue('');
mygrid.refresh();
}
}
}
var上传窗口
var showUploadWindow=函数(){
如果(!uploadWindow){
uploadWindow=新的外部窗口({
标题:“附加文档”
,宽:450
,身高:140
,closable:true
,closeAction:“隐藏”
,iconCls:'
,布局:'form'
,车身风格:“衬垫:10px 10px 0px 2px”
,标签宽度:100
,labelAlign:“对”
,renderTo:DocumentUploadForm_FormViewPort.getEl()
,约束:true
,模态:真的
,项目:[{
xtype:'textfield'
,validationEvent:'blur'
,enableKeyEvents:true
,主播:“100%”
,fieldLabel:“*选择文件”
,标签样式:“颜色:红色”
,el:“fuDocument”
,id:‘fuDocument’
,allowBlank:false
,blankText:“文件上载是必填字段”
,inputType:'文件'
}, {
xtype:'textfield'
,主播:“100%”
,字段标签:“说明”
,id:'txtDescription'
,allowDecimals:false
,分贝精度:0
,最大长度:100
,maxLengthText:“说明长度不得超过100个字符”
}]
,buttonAlign:'中间'
,fbar:[{
文本:“保存”,图标:“图标按钮保存”,处理程序:function(){uploadDocument()}
}, {
文本:“取消”,图标:“图标按钮取消”,处理程序:function(){uploadWindow.hide()}
}]
})
}
uploadWindow.show();
mapEnterKey(上传窗口);
}
函数viewContent(){
var docId=mygrid.getSelectedString('DocumentId');
window.location=“Edit/”+docId;
}
函数uploadDocument(){
uploadWindow.hide();
DocumentUploadForm.doAction('SAVE'))
mygrid.refresh();
}
//此函数映射回车键
函数映射输入键(obj){
var keyMap=new Ext.keyMap(obj.getEl(){
键:Ext.EventObject.ENTER,
stopEvent:对,
处理程序:上载文档
});
}
应该在GridView上调用refresh()函数(检查Ext Docs)。如果“mygrid”是你的GridPanel,
那么就这样说吧:
mygrid.getView().refresh();
我明白了。将RefreshGrid()更改为此
另外,我在mygrid.refresh()之后放置了一个警报;语句,我可以看到警报,但由于某些原因,新上传的文件直到我仍然F5。这就像刷新网格没有做任何事情一样。如果“mygrid”是一个GridPanel,那么应该有getView()方法。检查控制台中的mygrid-是否有任何getView()方法。检查GridView API中的refresh()方法-我相信弹出的窗口是一个ExtJS窗口,但是我认为父页面上的网格只是一个普通的ASP.NET网格。mygrid.refresh()的代码;没有给出错误,但不工作。我只是想从ExtJS弹出窗口中硬刷新parent.aspx页面。
function RefreshGrid(result, data) {
window.location.reload();
if (data.responseText.length > 0) {
var obj = eval('(' + data.responseText + ')');
if (obj.Result == false) {
Global.alertError(obj.UserMessage, obj.ExceptionID);
}
else {
Global.getComponent('txtDescription').setValue('');
}
}
}