假设页面中有如下一个Repeater控件:程序代码《HeaderTemplate》 《asp:Label ID=“Label1“ runat=“server“ Text=“AAAAAAA“》《/asp:Label》《/HeaderTemplate》《ItemTemplate》 《asp:Label ID=“Label2“ runat=“server“ Text=’《%# Eval(“name“) %》’》《/asp:Label》《/ItemTemplate》《FooterTemplate》 《asp:Label ID=“Label3“ runat=“server“ Text=“BBBBBBB“》《/asp:Label》《/FooterTemplate》《/asp:Repeater》下边代码示例寻找Label1和Label3:程序代码如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件,如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i《repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl(“CheckBox1“); if(cb.Checked) { //相关数据处理 } }但是,如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i《repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl(“CheckBox1“); if(cb.Checked) { //相关数据处理 } }但是,关于repeater 嵌套、如何获得里面的repeater 中的控件可以用Items属性来遍历行并用FindControl进行寻找,假设页面中有如下一个Repeater控件:程序代码《HeaderTemplate》 《asp:Label ID=“Label1“ runat=“server“ Text=“AAAAAAA“》《/asp:Label》《/HeaderTemplate》《ItemTemplate》 《asp:Label ID=“Label2“ runat=“server“ Text=’《%# Eval(“name“) %》’》《/asp:Label》《/ItemTemplate》《FooterTemplate》 《asp:Label ID=“Label3“ runat=“server“ Text=“BBBBBBB“》《/asp:Label》《/FooterTemplate》《/asp:Repeater》下边代码示例寻找Label1和Label3:程序代码//在HeaderTemplate中寻找Label1,与本周工作情况表中,默认为最后一个string s=((Label)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl(“Label2“)).Text;如何开发finereport的自定义控件1、实例化一个注册控件的接口package com.hg.free.plugin.customcombo.param; import com.fr.design.designer.creator.XComboBox; import com.fr.design.fun.impl.AbstractParameterWidgetOptionProvider; import com.fr.form.ui.Widget; public class WidgetRegister extends AbstractParameterWidgetOptionProvider { @Override public Class《? extends Widget》 classForWidget() { return CustomComboBox.class; } @Override public Class《?》 appearanceForWidget() { return XComboBox.class; } @Override public String iconPathForWidget() { return “/com/fr/web/images/combobox.png“; } @Override public String nameForWidget() { return “自定义下拉框“; } }2、重写控件类package com.hg.free.plugin.customcombo.param; import com.fr.form.ui.ComboBox; import com.fr.ui.DataFilter; public class CustomComboBox extends ComboBox { private static final long serialVersionUID = 7169771062153345236L; @Override public String getXType() { return “customcombo“; } @Override protected DataFilter createDataFilter() { return new CustomComboBoxDataFilter(); } }因为要改变过滤方式,一个用来绑定本周工作情况。
关于repeater 嵌套、如何获得里面的repeater 中的控件
可以用Items属性来遍历行并用FindControl进行寻找,如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i《repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl(“CheckBox1“); if(cb.Checked) { //相关数据处理 } }但是,如果在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件:程序代码《HeaderTemplate》 《asp:Label ID=“Label1“ runat=“server“ Text=“AAAAAAA“》《/asp:Label》《/HeaderTemplate》《ItemTemplate》 《asp:Label ID=“Label2“ runat=“server“ Text=’《%# Eval(“name“) %》’》《/asp:Label》《/ItemTemplate》《FooterTemplate》 《asp:Label ID=“Label3“ runat=“server“ Text=“BBBBBBB“》《/asp:Label》《/FooterTemplate》《/asp:Repeater》下边代码示例寻找Label1和Label3:程序代码如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找,如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i《repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl(“CheckBox1“); if(cb.Checked) { //相关数据处理 } }但是,如果在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件:程序代码《HeaderTemplate》 《asp:Label ID=“Label1“ runat=“server“ Text=“AAAAAAA“》《/asp:Label》《/HeaderTemplate》《ItemTemplate》 《asp:Label ID=“Label2“ runat=“server“ Text=’《%# Eval(“name“) %》’》《/asp:Label》《/ItemTemplate》《FooterTemplate》 《asp:Label ID=“Label3“ runat=“server“ Text=“BBBBBBB“》《/asp:Label》《/FooterTemplate》《/asp:Repeater》下边代码示例寻找Label1和Label3:程序代码//在HeaderTemplate中寻找Label1,默认为第0个string s=((Label)Repeater1.Controls.FindControl(“Label1“)).Text;//在FooterTemplate中寻找Label2,默认为最后一个string s=((Label)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl(“Label2“)).Text;
如何开发finereport的自定义控件
1、实例化一个注册控件的接口
package com.hg.free.plugin.customcombo.param; import com.fr.design.designer.creator.XComboBox; import com.fr.design.fun.impl.AbstractParameterWidgetOptionProvider; import com.fr.form.ui.Widget; public class WidgetRegister extends AbstractParameterWidgetOptionProvider { @Override public Class《? extends Widget》 classForWidget() { return CustomComboBox.class; } @Override public Class《?》 appearanceForWidget() { return XComboBox.class; } @Override public String iconPathForWidget() { return “/com/fr/web/images/combobox.png“; } @Override public String nameForWidget() { return “自定义下拉框“; } }2、重写控件类
package com.hg.free.plugin.customcombo.param; import com.fr.form.ui.ComboBox; import com.fr.ui.DataFilter; public class CustomComboBox extends ComboBox { private static final long serialVersionUID = 7169771062153345236L; @Override public String getXType() { return “customcombo“; } @Override protected DataFilter createDataFilter() { return new CustomComboBoxDataFilter(); } }因为要改变过滤方式,就要重写一个过滤器
package com.hg.free.plugin.customcombo.param; import com.fr.form.ui.ComboBoxDataFilter; public class CustomComboBoxDataFilter extends ComboBoxDataFilter { @Override public boolean isMatch(String txt, String filter) { if(null==txt && null!=filter)return false; if(null==txt && null==filter)return true; return txt.indexOf(filter)!=-1; } }3、继承前端控件js
; (function($){ FR.CustomComboBoxEditor = FR.extend(FR.ComboBoxEditor, { _init: function () { FR.CustomComboBoxEditor.superclass._init.apply(this, arguments); } }); $.shortcut(“customcombo“, FR.CustomComboBoxEditor); })(jQuery);然后写个xml用ant打包成插件就可以了。
Repeater嵌套循环出来的数据怎么是重复的,应该怎么解决啊,上图
《table》《asp:Repeater ID=“repPeople“ runat=“server“》《ItemTemplate》《tr》人《/tr》《asp:Repeater ID=“repLastWeekWork“ runat=“server“》《ItemTemplate》《tr》上个星期工作《/tr》《/ItemTemplate》《/asp:Repeater》《tr》人《/tr》《asp:Repeater ID=“repThisWeekWork“ runat=“server“》《ItemTemplate》《tr》本周工作《/tr》《/ItemTemplate》《/asp:Repeater》《/ItemTemplate》《/asp:Repeater》《/table》
我个人来看,你这里需要在内部嵌套2个repeater,一个用来绑定上周工作情况,一个用来绑定本周工作情况。
而最外层的repeater的数据源是List《People》,然后根据People.ID传递到上周工作情况表,与本周工作情况表中。查询数据,绑定给嵌套的两个repeater
onblur 是控件在失去焦点的时候触发的事件是什么意思
onblur事件只有表单元素具有这个事件!比如说一个输入用户名的登陆框,你把鼠标点上去,光标变一闪一闪的提示你输入信息,这个时候就是得到焦点,就会触发onfocus事件,当你把鼠标点击到输入框外,这个时候就是失去焦点,就会触发onblur事件,一个表单元素的onblur事件是必须在它得到焦点过后才会触发的!也就是说一个从来没得到过焦点的表单元素是不可能会失去焦点的!也就不会触发onblur事件!说了这么多分都没得!郁闷!