FineUI 官方论坛
标题:
封装控件后TextChanged事件报错
[打印本页]
作者:
Tiger
时间:
2013-9-11 13:03
标题:
封装控件后TextChanged事件报错
为了简化操作,我对三石的控件进行了封装,但是报图上的错误
function anonymous(values, parent, xindex, xcount) {
with(values){ return !enabled; }
}
function anonymous(values, parent) {
with(values){ return values; }
}
function anonymous() {
var x0=X('frmAdd_ctl00_txtUserAlias');X('').
x_updateTpls("");
X.state(x0,{"Text":"21","Text_GZ":""});window.X.alert('ok');
}
作者:
Tiger
时间:
2013-9-11 13:34
问题是封装的控件中如果有Grid,并且设了Datasource,再做过databind()后就出错,职果只是定义Grid的字段,不会出这个问题
作者:
Tiger
时间:
2013-9-11 13:48
protected void Page_Load(object sender, EventArgs e)
{
DataAccessor data = new DataAccessor();
string sql = "select * from tab";
DataTable table = data.ExecuteReader(sql).Tables[0];
FineUI.Grid grid = new FineUI.Grid();
grid.DataSource = table;
FineUI.BoundField field = new FineUI.BoundField();
field.DataField = "TNAME";
grid.Columns.Add(field);
//grid.DataBind();
FineUI.TextBox box = new FineUI.TextBox();
box.AutoPostBack = true;
box.TextChanged += new EventHandler(box_TextChanged);
FineUI.FormRow row = new FineUI.FormRow();
row.Items.Add(box);
row.Items.Add(grid);
frmAdd.Rows.Add(row);
}
void box_TextChanged(object sender, EventArgs e)
{
FineUI.Alert.Show("OOO");
}
好像与我的封装没有关系,我现在没用任何封装,全是FineUI自己的控件也不行呢,请大师们指点
作者:
Tiger
时间:
2013-9-11 13:48
上例中
grid.DataBind();
如果注释去掉就报错
作者:
sanshi
时间:
2013-9-11 14:10
没看明白,不过这里是找不到表格,x_updateTpls是表格实例的方法:
X('').x_updateTpls("");
复制代码
作者:
Tiger
时间:
2013-9-11 14:19
是的,我还发现 如果 PageLoad里写上 if (!Page.IsPostBack) 这种判断,事件都没有响应了,如果不加,可以响应,但是显示多执行了一次,反正现在有表格搅着就不行
三石看一下我的代码,没有封装,只要换一个Datasource就可以看到报错了 谢谢
作者:
Tiger
时间:
2013-9-11 14:22
我放在 Page_Load Page_init OnInit 里都不行
作者:
sanshi
时间:
2013-9-11 14:38
动态创建控件放在 Page_Init 中,仔细看看这篇博文:
http://www.cnblogs.com/sanshi/archive/2012/11/19/2776672.html
作者:
Tiger
时间:
2013-9-11 14:44
我发现 Grid直接在页面上托进去,C#里只负责赋值,就一切正常,如果是在 C#里创建的Grid再加给进到窗体里,就不行了,也就是Grid的创建地方不一样,效果不同,谁给我讲一下,我如果必须用C#k创建的话, 应该怎么调整下?
谢谢
作者:
Tiger
时间:
2013-9-11 14:58
三石 ,我试了下,你这个例子非常好,但是也是前提是Grid是直接放在Aspx里的,我的做法是直接在C#里new出来的,会有这个差异,受累帮看看 谢谢
作者:
Tiger
时间:
2013-9-11 21:54
发现了一点,需要先把Grid添加到this.Controls.Add(grid) 之后再绑定数据就可以了 如果先绑定后添加,就有问题
希望三石帮看看 如果能做到顺序无关就更好了
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4