论坛首页 Web前端技术论坛

秀下用EXTJS做的界面,顺便请教几个问题

浏览 4117 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-24  
请参阅以下界面,欢迎指教。
有以下问题:
1:Grid的刷新:我用grid.getView().refresh()不起作用,如在Data list中用某一个字段做了查询后,我想在用户选择 Page Locate后,将grid的数据重新装载下,目前没办法的情况下用的 submit,谁有可以实现grid数据刷新的代码呀?
2:函数作用域的问题:
比如在insert界面中,有一个输入框,我用var aaaobj = new Ext.form.TextField({id:'aaa',.....});如果我想写一个
aaaobj.on('blur',test1),那么这个test1函数就一定要写在 Ext.onReady(function(){.....})中间,而在insert界面中,最下一行button是自己用table html写出来的,而button的onClick假定为test2事件,这样那个test2就不能写入Ext.onReady(function(){.....})中间了,否则说找不到函数,但是,如果用<script language=Javascript>function test2(){......}</script>这样写的话,函数可以执行,但在这个函数就不能使用上面定义的aaaobj这个对象了,只能使用Ext.get('aaa').dom这样,但这种方式取的对象只能取值,不能使用Ext中定义的一些方法或属性。
3:自定义属性的问题。
比如,我在初始一个输入框时,var aaaobj = new Ext.form.TextField({id:'aaa',.....});我定义了aaaobj的一个属性比如叫testp,值为testpv,那么我只要直接加入 testp:'testpv',就行了,但是,我只能使用aaaobj.testp才能返回这个属性值,而不能使用Ext.get('aaa').testp了,其实如果能解决第二个问题,让自定义的函数也能写入Ext.onReady(function(){.....})中间,那这个问题也就无所谓了,我就直接使用对象了,而不去用Ext.get('')了,但如果第二个问题没办法解决,谁有办法可以自定义对象的属性并加以调用呢?
   发表时间:2008-05-24  
ext 的ui真是越看越恶心啊 ,呵呵
0 请登录后投票
   发表时间:2008-05-24  
做的再好有什么用,诶~~~

除非你买了license,不然你必须共享你的源代码。

你买了license了吗?

如果没有的话而你也没有共享你的源代码,你就要当心别人告你违法了。

所以即便是你用了还是要低调一点。

0 请登录后投票
   发表时间:2008-05-24  
sdlfly2000 写道
做的再好有什么用,诶~~~

除非你买了license,不然你必须共享你的源代码。

你买了license了吗?

如果没有的话而你也没有共享你的源代码,你就要当心别人告你违法了。

所以即便是你用了还是要低调一点。


买一个用户开发版的,才2K多,如果好用,准备买呀
0 请登录后投票
   发表时间:2008-05-24  
jjx 写道
ext 的ui真是越看越恶心啊 ,呵呵

这位兄台,有比Ext更好的UI控件?做程序的人,无论什么界面,看得多了,都觉得恶心,但对于用户来说,就不同了,window的无论什么界面,我看都恶心,特别是XP的,但用户都觉得XP界面好看,哎,不同的视觉呀......
0 请登录后投票
   发表时间:2008-05-24  
1,grid.getStore(). reload([Object options])

2,aaaobj.on('blur',test1)
  a,test1放在全局作用域下,可以访问。但如果是一个独有方法的话,写个“匿名”方法也可以。
  b,test1方法的第一个参数会传处发对象的当前实例。可以用它进行引用。
  c,您也可以参考on( String eventName, Function fn, [Object scope], [Object options] ) 方法,还指定运行时的作用域,来达到test1方法具体运行时的作用域。

3,我理解您这儿应该是自定义属性而非自定义组件吧,这样的话通过公开API是访问不到的。但您如果非要访问的话,可以通过引用对象实例的initialConfig来访问您自定义属性。但并不建议真的这样去做。这样做,您的业务,或您的其它组件就已经被EXT当前版本强侵入。并不是一件好事情。
  
0 请登录后投票
   发表时间:2008-05-24  
dboylx 写道
1,grid.getStore(). reload([Object options])
2,aaaobj.on('blur',test1)
  a,test1放在全局作用域下,可以访问。但如果是一个独有方法的话,写个“匿名”方法也可以。
  b,test1方法的第一个参数会传处发对象的当前实例。可以用它进行引用。
  c,您也可以参考on( String eventName, Function fn, [Object scope], [Object options] ) 方法,还指定运行时的作用域,来达到test1方法具体运行时的作用域。
3,我理解您这儿应该是自定义属性而非自定义组件吧,这样的话通过公开API是访问不到的。但您如果非要访问的话,可以通过引用对象实例的initialConfig来访问您自定义属性。但并不建议真的这样去做。这样做,您的业务,或您的其它组件就已经被EXT当前版本强侵入。并不是一件好事情。

测试过老兄说的方法,还是存在一定的问题,第一个,我不清楚我这里为什么grid就是不刷新。致于第二和第三个问题,我贴一段代码举例说一下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java"%>
<%@ include file="../../includes/public.jsp" %>
<%
String functioncode="FUNCTIONUNITS";
%>
<HTML>
<HEAD>
<TITLE><%=Consts.titletxt%></TITLE>
<base target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<%out.print(util.GetJscss());%>
<script language="javascript">
Ext.onReady(function(){
<%=ui.GetDllFormDs(functioncode)%>
<%=ui.GetInsertForm2Column(functioncode,"Create New FunctionUnit")%>
<%=ui.GetDllFormOpt(functioncode)%>
function kkk(){
alert(functionnameobj.hcolumn);
}
});
function save(){
var s = Ext.getBody();
alert(Ext.get('functionname').initialConfig.height);
s.mask('Saveing...','');
}
</script>
</HEAD>
<BODY scroll="no">
<div id='optdiv' class="x-toolbar"></div>
<%
String[] buttons={"Save","Reset","Close"};
String[] clicks={"save()","resetf()","closeself()"};
out.print(ui.GetButtons(buttons,clicks));
%>
</HTML>


在上面的代码中,hcolumn是我对每一个在后台初始化的对象自定义的一个属性,kkk方法是后台有一个
var functionnameobj = new Ext.form.TextField(id:'functionname',);定义的一个blur方法.
save方法就是下在buttons数组中save的方法了.现在的问题是:
如果将save()方法移到红色的});内面写,系统报找不到方法,如果放在});外面写,蓝色访问自定义属性的那段代码又出错,kkk方法中访问hcolumn自定义的属性没问题。
有谁能解决这个问题,请多多指教......
0 请登录后投票
   发表时间:2008-05-26  
天呀,grid就是不刷新数据......
使用过 grid.getView().refresh(); 也使用过 grid.getStore().reload() ;还使用过 ds.load(....);
谁能告诉我为什么?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics