FineUI是用js与html集成的控件,相当于一个用特殊js语句和html集成在一起的另类html。了解到这一点应当注意,对于在js中调用上面的选择器时,html中写的id名称或者是标签名称不能直接作为选择器来调用,因为在经过浏览器编译后,上面的id名称或者标签名称都已经经过编译了,已经变装了,此时编译后的id名称或者标签名称才应该作为我们调用的选择器。
Asp.net中aspx页面中的控件一般是服务器控件,如果我们想要添加js功能,例如在aspx上有button按钮,后台vb会有相应的click处理事件,(ps:这里也体现出了.NET迥异与其他语言的特性,触发事件都会发生客户端与服务器交互,相当于直接访问了服务器又接受了服务器的一次回发)。面对这种情况,如果我们要进行js方面的事件处理,就应该获得服务器控件客户端的id标识,诸如在fineui页面中,我们可能设计如下:
<f:ButtonID="btnOK" Text="确定" runat="server" ></f:Button>
我们要想获取上述服务器控件应该这样:
varbtnOK ='<%= btnOK.ClientID %>';
这是获取了上述服务器控件的客户端控件Id,此时我们可以进行事件操作了了eg:
$('#'+ btnOK).click(function(){ }
基于以上扩展,fineui在js中获取无论其任何控件id应该先将页面进行编译,即是在浏览器的调试模式下审查元素查看控件脱下“衣服”后真正的样子,eg:
<f:DropDownListID="PrintModel"runat="server"Label="打印模版类型"ShowLabel="true" Width="520px"LabelWidth="100px"CssClass="marginr">
<f:ListItemValue="(冷链产品)"Text="(冷链产品)"/>
<f:ListItemValue="(非冷链产品)"Text="(非冷链产品)"/>
<f:ListItemValue="(医疗器械)"Text="(医疗器械)"/>
"/>
</f:DropDownList>
如果在js中调用上述的下拉选项,应当这样,eg:
varPrintModel ='<%= PrintModel.ClientID %>';
varbt=$('#' + PrintModel+' input').val();
此处的input必须有,之所以有的原因就是由于fineui编译过后实际上就有input。
另外,经过实际验证,aspx下面的js先执行,vb后台中的代码后执行。
Js中的方法要了解实质
$('#divTemplate').html(data).html($('#divTemplate').find('#template').html())
上述方法中执行的顺序是选定的选择器先将data赋值给自身的html,假设称谓此时的状态为状态1,然后接下来继续用该选择器执行将下面的字符串(ps注意方法的实质,下面方法最终返回的是一个字符串、)赋值给状态1下的选择器。
$('#divTemplate').find('#template').html()
prototype的要点:
String.prototype.temp =function(obj) {
returnthis.replace(/\$\w+\$/gi,function(matchs) {
varreturns = obj[matchs.replace(/\$/g, "")];
return(returns + "") == "undefined"? "":returns;
});
};
Prototype是向某一种元素添加属性或方法,
Replace函数,如果是俩个字符串,那么使用第二个字符串替换第一个字符串,并且如果第一个字符串出现多次,那么只替换第一次检索到的,并不会替换后面的字符串。
主要讲一下如果第二个参数是函数的意义,此时,上述正则表达式后面是g限定了是对字符串全体进行操作,对每一个符合正则表达式限定的地方进行后面函数运行,此列中,matchs参数就是满足每一次限定规则的字符串的替代形参。
Index Of()判断字符串中是否有这个限定的字符串。没有就返回-1。有的话返回所在index。